diff --git a/docs/compiled/artplayer-plugin-danmuku.esm.js b/docs/compiled/artplayer-plugin-danmuku.esm.js index 6a8f453f2..952ff5d1b 100644 --- a/docs/compiled/artplayer-plugin-danmuku.esm.js +++ b/docs/compiled/artplayer-plugin-danmuku.esm.js @@ -1,6 +1,6 @@ /*! - * artplayer-plugin-danmuku.js v5.1.7 + * artplayer-plugin-danmuku.js v5.1.8 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. diff --git a/docs/compiled/artplayer-plugin-danmuku.js b/docs/compiled/artplayer-plugin-danmuku.js index 04e9e5b44..a6db8f97e 100644 --- a/docs/compiled/artplayer-plugin-danmuku.js +++ b/docs/compiled/artplayer-plugin-danmuku.js @@ -1,6 +1,6 @@ /*! - * artplayer-plugin-danmuku.js v5.1.7 + * artplayer-plugin-danmuku.js v5.1.8 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. diff --git a/docs/compiled/artplayer-plugin-danmuku.legacy.js b/docs/compiled/artplayer-plugin-danmuku.legacy.js index 596a043d6..7319f207e 100644 --- a/docs/compiled/artplayer-plugin-danmuku.legacy.js +++ b/docs/compiled/artplayer-plugin-danmuku.legacy.js @@ -1,6 +1,6 @@ /*! - * artplayer-plugin-danmuku.js v5.1.7 + * artplayer-plugin-danmuku.js v5.1.8 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. diff --git a/docs/compiled/artplayer.esm.js b/docs/compiled/artplayer.esm.js index 23aeafc2b..077bf4324 100644 --- a/docs/compiled/artplayer.esm.js +++ b/docs/compiled/artplayer.esm.js @@ -1,9 +1,9 @@ /*! - * artplayer.js v5.2.4 + * artplayer.js v5.2.5 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}Z.push(this)}static get instances(){return Z}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),Z.splice(Z.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"3QATz","bundle-text:./style/index.less":"7b65e","option-validator":"glVMO","./utils/emitter":"evjIj","./utils":"2zmtQ","./scheme":"lGoF1","./config":"auZaO","./template":"1uh6E","./i18n":"3udCS","./player":"9mB1U","./control":"3aoXC","./contextmenu":"5YYHx","./info":"j6kB4","./subtitle":"ldqPL","./events":"5jGH8","./hotkey":"8a1Mr","./layer":"3WCuK","./loading":"inwRV","./notice":"iAojr","./mask":"4ZuYu","./icons":"aEpTt","./setting":"9Bz5C","./storage":"ly2Yz","./plugins":"enDIw","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3QATz":[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.4","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","module":"dist/artplayer.esm.js","types":"types/artplayer.d.ts","exports":{"import":"./dist/artplayer.esm.js","require":"./dist/artplayer.js","default":"./dist/artplayer.js"},"homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"7b65e":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],glVMO:[function(e,t,r,a){t.exports=function(){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>T),o.export(r,"getRect",()=>$),o.export(r,"loadImg",()=>I);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function T(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function $(e){return e.getBoundingClientRect()}function I(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"lHM5L","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lHM5L:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],anKPB:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],NXvdl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9RWGQ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],bfNe9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],afTRg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1I37O":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lGoF1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],auZaO:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1uh6E":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"3QATz","./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3udCS":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"2zmtQ","./zh-cn":"3CYMl","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3CYMl":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9mB1U":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),$=o.interopDefault(T),I=e("./aspectRatioMix"),M=o.interopDefault(I),L=e("./screenshotMix"),E=o.interopDefault(L),z=e("./fullscreenMix"),C=o.interopDefault(z),F=e("./fullscreenWebMix"),D=o.interopDefault(F),A=e("./pipMix"),R=o.interopDefault(A),O=e("./loadedMix"),P=o.interopDefault(O),_=e("./playedMix"),H=o.interopDefault(_),V=e("./playingMix"),N=o.interopDefault(V),q=e("./autoSizeMix"),B=o.interopDefault(q),Q=e("./rectMix"),W=o.interopDefault(Q),U=e("./flipMix"),Y=o.interopDefault(U),G=e("./miniMix"),K=o.interopDefault(G),X=e("./posterMix"),Z=o.interopDefault(X),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,$.default)(e),(0,M.default)(e),(0,E.default)(e),(0,C.default)(e),(0,D.default)(e),(0,R.default)(e),(0,P.default)(e),(0,H.default)(e),(0,N.default)(e),(0,B.default)(e),(0,W.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,Z.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"gOtyE","./attrMix":"53BhY","./playMix":"1banF","./pauseMix":"3wC1g","./toggleMix":"27lNh","./seekMix":"h3e53","./volumeMix":"7ZLkO","./currentTimeMix":"e6oTn","./durationMix":"asbQ7","./switchMix":"5l7tM","./playbackRateMix":"dHiZV","./aspectRatioMix":"7TM4D","./screenshotMix":"9LouN","./fullscreenMix":"dYSsN","./fullscreenWebMix":"fF9Os","./pipMix":"hDMWY","./loadedMix":"7RkX2","./playedMix":"jXVGX","./playingMix":"5vvMN","./autoSizeMix":"eukuj","./rectMix":"dSo4g","./flipMix":"dJ7GF","./miniMix":"kZI2p","./posterMix":"fIZNk","./autoHeightMix":"24b5p","./cssVarMix":"gK6U1","./themeMix":"aIG6s","./typeMix":"i5sGy","./stateMix":"juKiS","./subtitleOffsetMix":"arSae","./airplayMix":"kIugI","./qualityMix":"lDgAt","./thumbnailsMix":"5Mloy","./optionInit":"a5DcW","./eventInit":"jpd3q","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gOtyE:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"53BhY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1banF":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"27lNh":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],h3e53:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7ZLkO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],e6oTn:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],asbQ7:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5l7tM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dHiZV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7TM4D":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9LouN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dYSsN:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"9CUfT","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9CUfT":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fF9Os:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hDMWY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7RkX2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jXVGX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5vvMN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eukuj:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dSo4g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dJ7GF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kZI2p:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fIZNk:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"24b5p":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gK6U1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aIG6s:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],i5sGy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],juKiS:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lDgAt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5Mloy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],a5DcW:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jpd3q:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"auZaO","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3aoXC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),T=e("./airplay"),$=o.interopDefault(T),I=e("../utils");class M extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{I.isMobile||(this.show=!0)}),e.on("click",()=>{I.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,I.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,I.removeClass)(r,"art-hide-cursor"),(0,I.addClass)(r,"art-hover"),this.timer=Date.now()):((0,I.addClass)(r,"art-hide-cursor"),(0,I.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,I.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!I.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,$.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,I.def)(r,"$control_item",{get:()=>a}),(0,I.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=M},{"../utils/component":"euCTd","./fullscreen":"9LKex","./fullscreenWeb":"htT34","./pip":"7zSba","./playAndPause":"kGz8j","./progress":"7zX2b","./time":"eUF3T","./volume":"5Jp6A","./setting":"aPd5g","./screenshot":"cEkSl","./airplay":"iUshw","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],euCTd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],htT34:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zSba":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kGz8j:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zX2b":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eUF3T:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aPd5g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cEkSl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iUshw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5YYHx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"2zmtQ","../utils/component":"euCTd","./playbackRate":"lWYo9","./aspectRatio":"5d6ZO","./flip":"1GWlZ","./info":"c5pls","./version":"lD1aU","./close":"4jD3d","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lWYo9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5d6ZO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1GWlZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],c5pls:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lD1aU:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"3QATz","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4jD3d":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],j6kB4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"2zmtQ","./utils/component":"euCTd","option-validator":"glVMO","./scheme":"lGoF1","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5jGH8":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],egLHg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iGcl4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1DNHs":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],efKpC:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"2zmtQ","../control/progress":"7zX2b","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fNuBy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kHtUy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8cq8y":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3XeLA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8a1Mr":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4ZuYu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"2zmtQ","./utils/component":"euCTd","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aEpTt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),T=o.interopDefault(S),$=e("bundle-text:./arrow-right.svg"),I=o.interopDefault($),M=e("bundle-text:./playback-rate.svg"),L=o.interopDefault(M),E=e("bundle-text:./aspect-ratio.svg"),z=o.interopDefault(E),C=e("bundle-text:./config.svg"),F=o.interopDefault(C),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),O=o.interopDefault(R),P=e("bundle-text:./unlock.svg"),_=o.interopDefault(P),H=e("bundle-text:./fullscreen-off.svg"),V=o.interopDefault(H),N=e("bundle-text:./fullscreen-on.svg"),q=o.interopDefault(N),B=e("bundle-text:./fullscreen-web-off.svg"),Q=o.interopDefault(B),W=e("bundle-text:./fullscreen-web-on.svg"),U=o.interopDefault(W),Y=e("bundle-text:./switch-on.svg"),G=o.interopDefault(Y),K=e("bundle-text:./switch-off.svg"),X=o.interopDefault(K),Z=e("bundle-text:./flip.svg"),J=o.interopDefault(Z),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:T.default,arrowRight:I.default,playbackRate:L.default,aspectRatio:z.default,config:F.default,lock:O.default,flip:J.default,unlock:_.default,fullscreenOff:V.default,fullscreenOn:q.default,fullscreenWebOff:Q.default,fullscreenWebOn:U.default,switchOn:G.default,switchOff:X.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"2zmtQ","bundle-text:./loading.svg":"hvcIK","bundle-text:./state.svg":"lvrOo","bundle-text:./check.svg":"dEWuy","bundle-text:./play.svg":"bIRRL","bundle-text:./pause.svg":"8qmIt","bundle-text:./volume.svg":"d1KXb","bundle-text:./volume-close.svg":"6M8TS","bundle-text:./screenshot.svg":"1GD8Z","bundle-text:./setting.svg":"jmLr7","bundle-text:./arrow-left.svg":"8ACXK","bundle-text:./arrow-right.svg":"eUczZ","bundle-text:./playback-rate.svg":"cYmA3","bundle-text:./aspect-ratio.svg":"8l32s","bundle-text:./config.svg":"8Erz8","bundle-text:./pip.svg":"gx5TO","bundle-text:./lock.svg":"7IJRz","bundle-text:./unlock.svg":"dBJfA","bundle-text:./fullscreen-off.svg":"84gJT","bundle-text:./fullscreen-on.svg":"eGYQU","bundle-text:./fullscreen-web-off.svg":"aGs9s","bundle-text:./fullscreen-web-on.svg":"1r85n","bundle-text:./switch-on.svg":"fNd7D","bundle-text:./switch-off.svg":"eCzDs","bundle-text:./flip.svg":"84k5P","bundle-text:./error.svg":"lMJEW","bundle-text:./close.svg":"4Kq91","bundle-text:./airplay.svg":"a7OND","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hvcIK:[function(e,t,r,a){t.exports=''},{}],lvrOo:[function(e,t,r,a){t.exports=''},{}],dEWuy:[function(e,t,r,a){t.exports=''},{}],bIRRL:[function(e,t,r,a){t.exports=''},{}],"8qmIt":[function(e,t,r,a){t.exports=''},{}],d1KXb:[function(e,t,r,a){t.exports=''},{}],"6M8TS":[function(e,t,r,a){t.exports=''},{}],"1GD8Z":[function(e,t,r,a){t.exports=''},{}],jmLr7:[function(e,t,r,a){t.exports=''},{}],"8ACXK":[function(e,t,r,a){t.exports=''},{}],eUczZ:[function(e,t,r,a){t.exports=''},{}],cYmA3:[function(e,t,r,a){t.exports=''},{}],"8l32s":[function(e,t,r,a){t.exports=''},{}],"8Erz8":[function(e,t,r,a){t.exports=''},{}],gx5TO:[function(e,t,r,a){t.exports=''},{}],"7IJRz":[function(e,t,r,a){t.exports=''},{}],dBJfA:[function(e,t,r,a){t.exports=''},{}],"84gJT":[function(e,t,r,a){t.exports=''},{}],eGYQU:[function(e,t,r,a){t.exports=''},{}],aGs9s:[function(e,t,r,a){t.exports=''},{}],"1r85n":[function(e,t,r,a){t.exports=''},{}],fNd7D:[function(e,t,r,a){t.exports=''},{}],eCzDs:[function(e,t,r,a){t.exports=''},{}],"84k5P":[function(e,t,r,a){t.exports=''},{}],lMJEW:[function(e,t,r,a){t.exports=''},{}],"4Kq91":[function(e,t,r,a){t.exports=''},{}],a7OND:[function(e,t,r,a){t.exports=''},{}],"9Bz5C":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],g0rEm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],p1PC0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3ybiM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],ly2Yz:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],enDIw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"2zmtQ","./miniProgressBar":"dtvsV","./autoOrientation":"aMOBX","./autoPlayback":"kqk6e","./fastForward":"Rwbar","./lock":"cmd59","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dtvsV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aMOBX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kqk6e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],Rwbar:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cmd59:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}]},["4omrA"],"4omrA","parcelRequireb749",{});let{default:e}=parcelRequireb749("4omrA");export{e as default}; +!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}Z.push(this)}static get instances(){return Z}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),Z.splice(Z.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"3QATz","bundle-text:./style/index.less":"7b65e","option-validator":"glVMO","./utils/emitter":"evjIj","./utils":"2zmtQ","./scheme":"lGoF1","./config":"auZaO","./template":"1uh6E","./i18n":"3udCS","./player":"9mB1U","./control":"3aoXC","./contextmenu":"5YYHx","./info":"j6kB4","./subtitle":"ldqPL","./events":"5jGH8","./hotkey":"8a1Mr","./layer":"3WCuK","./loading":"inwRV","./notice":"iAojr","./mask":"4ZuYu","./icons":"aEpTt","./setting":"9Bz5C","./storage":"ly2Yz","./plugins":"enDIw","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3QATz":[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.5","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","types":"types/artplayer.d.ts","homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"7b65e":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],glVMO:[function(e,t,r,a){t.exports=function(){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>T),o.export(r,"getRect",()=>$),o.export(r,"loadImg",()=>I);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function T(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function $(e){return e.getBoundingClientRect()}function I(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"lHM5L","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lHM5L:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],anKPB:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],NXvdl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9RWGQ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],bfNe9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],afTRg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1I37O":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lGoF1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],auZaO:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1uh6E":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"3QATz","./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3udCS":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"2zmtQ","./zh-cn":"3CYMl","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3CYMl":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9mB1U":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),$=o.interopDefault(T),I=e("./aspectRatioMix"),M=o.interopDefault(I),L=e("./screenshotMix"),E=o.interopDefault(L),z=e("./fullscreenMix"),C=o.interopDefault(z),F=e("./fullscreenWebMix"),D=o.interopDefault(F),A=e("./pipMix"),R=o.interopDefault(A),O=e("./loadedMix"),P=o.interopDefault(O),_=e("./playedMix"),H=o.interopDefault(_),V=e("./playingMix"),N=o.interopDefault(V),q=e("./autoSizeMix"),B=o.interopDefault(q),Q=e("./rectMix"),W=o.interopDefault(Q),U=e("./flipMix"),Y=o.interopDefault(U),G=e("./miniMix"),K=o.interopDefault(G),X=e("./posterMix"),Z=o.interopDefault(X),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,$.default)(e),(0,M.default)(e),(0,E.default)(e),(0,C.default)(e),(0,D.default)(e),(0,R.default)(e),(0,P.default)(e),(0,H.default)(e),(0,N.default)(e),(0,B.default)(e),(0,W.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,Z.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"gOtyE","./attrMix":"53BhY","./playMix":"1banF","./pauseMix":"3wC1g","./toggleMix":"27lNh","./seekMix":"h3e53","./volumeMix":"7ZLkO","./currentTimeMix":"e6oTn","./durationMix":"asbQ7","./switchMix":"5l7tM","./playbackRateMix":"dHiZV","./aspectRatioMix":"7TM4D","./screenshotMix":"9LouN","./fullscreenMix":"dYSsN","./fullscreenWebMix":"fF9Os","./pipMix":"hDMWY","./loadedMix":"7RkX2","./playedMix":"jXVGX","./playingMix":"5vvMN","./autoSizeMix":"eukuj","./rectMix":"dSo4g","./flipMix":"dJ7GF","./miniMix":"kZI2p","./posterMix":"fIZNk","./autoHeightMix":"24b5p","./cssVarMix":"gK6U1","./themeMix":"aIG6s","./typeMix":"i5sGy","./stateMix":"juKiS","./subtitleOffsetMix":"arSae","./airplayMix":"kIugI","./qualityMix":"lDgAt","./thumbnailsMix":"5Mloy","./optionInit":"a5DcW","./eventInit":"jpd3q","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gOtyE:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"53BhY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1banF":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"27lNh":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],h3e53:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7ZLkO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],e6oTn:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],asbQ7:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5l7tM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dHiZV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7TM4D":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9LouN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dYSsN:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"9CUfT","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9CUfT":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fF9Os:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hDMWY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7RkX2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jXVGX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5vvMN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eukuj:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dSo4g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dJ7GF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kZI2p:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fIZNk:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"24b5p":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gK6U1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aIG6s:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],i5sGy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],juKiS:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lDgAt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5Mloy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],a5DcW:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jpd3q:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"auZaO","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3aoXC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),T=e("./airplay"),$=o.interopDefault(T),I=e("../utils");class M extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{I.isMobile||(this.show=!0)}),e.on("click",()=>{I.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,I.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,I.removeClass)(r,"art-hide-cursor"),(0,I.addClass)(r,"art-hover"),this.timer=Date.now()):((0,I.addClass)(r,"art-hide-cursor"),(0,I.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,I.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!I.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,$.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,I.def)(r,"$control_item",{get:()=>a}),(0,I.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=M},{"../utils/component":"euCTd","./fullscreen":"9LKex","./fullscreenWeb":"htT34","./pip":"7zSba","./playAndPause":"kGz8j","./progress":"7zX2b","./time":"eUF3T","./volume":"5Jp6A","./setting":"aPd5g","./screenshot":"cEkSl","./airplay":"iUshw","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],euCTd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],htT34:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zSba":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kGz8j:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zX2b":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eUF3T:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aPd5g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cEkSl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iUshw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5YYHx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"2zmtQ","../utils/component":"euCTd","./playbackRate":"lWYo9","./aspectRatio":"5d6ZO","./flip":"1GWlZ","./info":"c5pls","./version":"lD1aU","./close":"4jD3d","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lWYo9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5d6ZO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1GWlZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],c5pls:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lD1aU:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"3QATz","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4jD3d":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],j6kB4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"2zmtQ","./utils/component":"euCTd","option-validator":"glVMO","./scheme":"lGoF1","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5jGH8":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],egLHg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iGcl4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1DNHs":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],efKpC:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"2zmtQ","../control/progress":"7zX2b","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fNuBy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kHtUy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8cq8y":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3XeLA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8a1Mr":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4ZuYu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"2zmtQ","./utils/component":"euCTd","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aEpTt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),T=o.interopDefault(S),$=e("bundle-text:./arrow-right.svg"),I=o.interopDefault($),M=e("bundle-text:./playback-rate.svg"),L=o.interopDefault(M),E=e("bundle-text:./aspect-ratio.svg"),z=o.interopDefault(E),C=e("bundle-text:./config.svg"),F=o.interopDefault(C),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),O=o.interopDefault(R),P=e("bundle-text:./unlock.svg"),_=o.interopDefault(P),H=e("bundle-text:./fullscreen-off.svg"),V=o.interopDefault(H),N=e("bundle-text:./fullscreen-on.svg"),q=o.interopDefault(N),B=e("bundle-text:./fullscreen-web-off.svg"),Q=o.interopDefault(B),W=e("bundle-text:./fullscreen-web-on.svg"),U=o.interopDefault(W),Y=e("bundle-text:./switch-on.svg"),G=o.interopDefault(Y),K=e("bundle-text:./switch-off.svg"),X=o.interopDefault(K),Z=e("bundle-text:./flip.svg"),J=o.interopDefault(Z),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:T.default,arrowRight:I.default,playbackRate:L.default,aspectRatio:z.default,config:F.default,lock:O.default,flip:J.default,unlock:_.default,fullscreenOff:V.default,fullscreenOn:q.default,fullscreenWebOff:Q.default,fullscreenWebOn:U.default,switchOn:G.default,switchOff:X.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"2zmtQ","bundle-text:./loading.svg":"hvcIK","bundle-text:./state.svg":"lvrOo","bundle-text:./check.svg":"dEWuy","bundle-text:./play.svg":"bIRRL","bundle-text:./pause.svg":"8qmIt","bundle-text:./volume.svg":"d1KXb","bundle-text:./volume-close.svg":"6M8TS","bundle-text:./screenshot.svg":"1GD8Z","bundle-text:./setting.svg":"jmLr7","bundle-text:./arrow-left.svg":"8ACXK","bundle-text:./arrow-right.svg":"eUczZ","bundle-text:./playback-rate.svg":"cYmA3","bundle-text:./aspect-ratio.svg":"8l32s","bundle-text:./config.svg":"8Erz8","bundle-text:./pip.svg":"gx5TO","bundle-text:./lock.svg":"7IJRz","bundle-text:./unlock.svg":"dBJfA","bundle-text:./fullscreen-off.svg":"84gJT","bundle-text:./fullscreen-on.svg":"eGYQU","bundle-text:./fullscreen-web-off.svg":"aGs9s","bundle-text:./fullscreen-web-on.svg":"1r85n","bundle-text:./switch-on.svg":"fNd7D","bundle-text:./switch-off.svg":"eCzDs","bundle-text:./flip.svg":"84k5P","bundle-text:./error.svg":"lMJEW","bundle-text:./close.svg":"4Kq91","bundle-text:./airplay.svg":"a7OND","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hvcIK:[function(e,t,r,a){t.exports=''},{}],lvrOo:[function(e,t,r,a){t.exports=''},{}],dEWuy:[function(e,t,r,a){t.exports=''},{}],bIRRL:[function(e,t,r,a){t.exports=''},{}],"8qmIt":[function(e,t,r,a){t.exports=''},{}],d1KXb:[function(e,t,r,a){t.exports=''},{}],"6M8TS":[function(e,t,r,a){t.exports=''},{}],"1GD8Z":[function(e,t,r,a){t.exports=''},{}],jmLr7:[function(e,t,r,a){t.exports=''},{}],"8ACXK":[function(e,t,r,a){t.exports=''},{}],eUczZ:[function(e,t,r,a){t.exports=''},{}],cYmA3:[function(e,t,r,a){t.exports=''},{}],"8l32s":[function(e,t,r,a){t.exports=''},{}],"8Erz8":[function(e,t,r,a){t.exports=''},{}],gx5TO:[function(e,t,r,a){t.exports=''},{}],"7IJRz":[function(e,t,r,a){t.exports=''},{}],dBJfA:[function(e,t,r,a){t.exports=''},{}],"84gJT":[function(e,t,r,a){t.exports=''},{}],eGYQU:[function(e,t,r,a){t.exports=''},{}],aGs9s:[function(e,t,r,a){t.exports=''},{}],"1r85n":[function(e,t,r,a){t.exports=''},{}],fNd7D:[function(e,t,r,a){t.exports=''},{}],eCzDs:[function(e,t,r,a){t.exports=''},{}],"84k5P":[function(e,t,r,a){t.exports=''},{}],lMJEW:[function(e,t,r,a){t.exports=''},{}],"4Kq91":[function(e,t,r,a){t.exports=''},{}],a7OND:[function(e,t,r,a){t.exports=''},{}],"9Bz5C":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],g0rEm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],p1PC0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3ybiM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],ly2Yz:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],enDIw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"2zmtQ","./miniProgressBar":"dtvsV","./autoOrientation":"aMOBX","./autoPlayback":"kqk6e","./fastForward":"Rwbar","./lock":"cmd59","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dtvsV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aMOBX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kqk6e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],Rwbar:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cmd59:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}]},["4omrA"],"4omrA","parcelRequireb749",{});let{default:e}=parcelRequireb749("4omrA");export{e as default}; //# sourceMappingURL=artplayer.esm.js.map \ No newline at end of file diff --git a/docs/compiled/artplayer.esm.js.map b/docs/compiled/artplayer.esm.js.map index cc48ef0fa..999721daf 100644 --- a/docs/compiled/artplayer.esm.js.map +++ b/docs/compiled/artplayer.esm.js.map @@ -1 +1 @@ -{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAA,IAAA,EAAA,EAAA,mBACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,WACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,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AAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAC5C,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAElD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAE5B,EAAI,EAAE,CAAC,UAAW,KACd,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,KAChC,GAEA,EAAO,KAAK,CAAC,EAAS,MAAM,CAAE,QAAS,IAAM,EAAI,IAAI,GACzD,CACJ,CAnBqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCHrB,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,iC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,oC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,wC,E,E,c,C,GACA,EAAA,EAAA,uC,E,E,c,C,GACA,EAAA,EAAA,+B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,6B,G,E,c,C,GAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAM,EAAQ,CACV,QAAA,EAAA,OAAM,CACN,MAAA,EAAA,OAAI,CACJ,KAAA,EAAA,OAAG,CACH,MAAA,EAAA,OAAI,CACJ,MAAA,EAAA,OAAI,CACJ,OAAA,EAAA,OAAK,CACL,YAAA,EAAA,OAAU,CACV,WAAA,EAAA,OAAS,CACT,QAAA,EAAA,OAAM,CACN,IAAA,EAAA,OAAE,CACF,UAAA,EAAA,OAAQ,CACR,WAAA,EAAA,OAAS,CACT,aAAA,EAAA,OAAW,CACX,YAAA,EAAA,OAAU,CACV,OAAA,EAAA,OAAK,CACL,KAAA,EAAA,OAAG,CACH,KAAA,EAAA,OAAG,CACH,OAAA,EAAA,OAAK,CACL,cAAA,EAAA,OAAY,CACZ,aAAA,EAAA,OAAW,CACX,iBAAA,EAAA,OAAe,CACf,gBAAA,EAAA,OAAc,CACd,SAAA,EAAA,OAAO,CACP,UAAA,EAAA,OAAQ,CACR,MAAA,GAAA,OAAI,CACJ,MAAA,GAAA,OAAI,CACJ,QAAA,GAAA,OAAM,CACN,GAAG,EAAI,MAAM,CAAC,KAAK,AACvB,EAEA,IAAK,IAAM,KAAO,EACd,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,IAAI,CAAE,EAAK,CACX,IAAK,IAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,CAAK,CAAC,EAAI,CACtC,EAER,CACJ,C,E,C,W,Q,4B,Q,0B,Q,0B,Q,yB,Q,0B,Q,2B,Q,iC,Q,+B,Q,4B,Q,+B,Q,gC,Q,kC,Q,iC,Q,2B,Q,wB,Q,yB,Q,2B,Q,mC,Q,kC,Q,uC,Q,sC,Q,8B,Q,+B,Q,yB,Q,0B,Q,0B,Q,4B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,ECpEA,EAAO,OAAO,CAAG,utF,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,ic,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sK,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,6M,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yL,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kX,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qlB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,wX,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kuB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qa,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,22B,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,2M,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+N,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Z,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Y,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mS,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,4S,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mnB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,onB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kP,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sZ,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,muB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,okB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gjB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yN,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAjB,IAAA,EAAA,EAAA,U,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","sources":["","src/index.js","package.json","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e5b18d0e844e5afa.js","../../node_modules/option-validator/dist/option-validator.js","src/utils/emitter.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/utils/index.js","src/utils/dom.js","src/utils/compatibility.js","src/utils/error.js","src/utils/subtitle.js","src/utils/file.js","src/utils/property.js","src/utils/time.js","src/utils/format.js","src/scheme/index.js","src/config/index.js","src/template.js","src/i18n/index.js","src/i18n/zh-cn.js","src/player/index.js","src/player/urlMix.js","src/player/attrMix.js","src/player/playMix.js","src/player/pauseMix.js","src/player/toggleMix.js","src/player/seekMix.js","src/player/volumeMix.js","src/player/currentTimeMix.js","src/player/durationMix.js","src/player/switchMix.js","src/player/playbackRateMix.js","src/player/aspectRatioMix.js","src/player/screenshotMix.js","src/player/fullscreenMix.js","src/libs/screenfull.js","src/player/fullscreenWebMix.js","src/player/pipMix.js","src/player/loadedMix.js","src/player/playedMix.js","src/player/playingMix.js","src/player/autoSizeMix.js","src/player/rectMix.js","src/player/flipMix.js","src/player/miniMix.js","src/player/posterMix.js","src/player/autoHeightMix.js","src/player/cssVarMix.js","src/player/themeMix.js","src/player/typeMix.js","src/player/stateMix.js","src/player/subtitleOffsetMix.js","src/player/airplayMix.js","src/player/qualityMix.js","src/player/thumbnailsMix.js","src/player/optionInit.js","src/player/eventInit.js","src/control/index.js","src/utils/component.js","src/control/fullscreen.js","src/control/fullscreenWeb.js","src/control/pip.js","src/control/playAndPause.js","src/control/progress.js","src/control/time.js","src/control/volume.js","src/control/setting.js","src/control/screenshot.js","src/control/airplay.js","src/contextmenu/index.js","src/contextmenu/playbackRate.js","src/contextmenu/aspectRatio.js","src/contextmenu/flip.js","src/contextmenu/info.js","src/contextmenu/version.js","src/contextmenu/close.js","src/info.js","src/subtitle.js","src/events/index.js","src/events/clickInit.js","src/events/hoverInit.js","src/events/moveInit.js","src/events/resizeInit.js","src/events/gestureInit.js","src/events/viewInit.js","src/events/documentInit.js","src/events/updateInit.js","src/events/restoreInit.js","src/hotkey.js","src/layer.js","src/loading.js","src/notice.js","src/mask.js","src/icons/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-f46ce6fd4d6219c9.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e2699ab1b5d12dec.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-fb4f406243bae249.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e7f49ef0a750e46e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-355a67f597addcce.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b511c19de45d7b5a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a8c37daa693ed128.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6e583e791161db23.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5d29c1646a3f2a46.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-378fbb72a82e8e48.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e8cd5a1ef68bb59f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-ffbc0f66c3a6fc5c.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5686118494f842bb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-9f0950781f43006b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d259a056e372040b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-04028cd054423deb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-eafe778ff83fb2ea.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a4473dfbbe0190b0.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-73212e2644fd43cb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6f4de877081a61c3.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-886a1de38693838a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-dc18eeb39fcd983d.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-059301d9482d34d2.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d9590f5b369d2f07.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-7a1cdac95b207001.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e53925a959c8f5c7.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b336b1c2248901.js","src/setting/index.js","src/setting/flip.js","src/setting/aspectRatio.js","src/setting/playbackRate.js","src/setting/subtitleOffset.js","src/storage.js","src/plugins/index.js","src/plugins/miniProgressBar.js","src/plugins/autoOrientation.js","src/plugins/autoPlayback.js","src/plugins/fastForward.js","src/plugins/lock.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"4omrA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _indexLess = require(\"bundle-text:./style/index.less\");\nvar _indexLessDefault = parcelHelpers.interopDefault(_indexLess);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _emitter = require(\"./utils/emitter\");\nvar _emitterDefault = parcelHelpers.interopDefault(_emitter);\nvar _utils = require(\"./utils\");\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nvar _config = require(\"./config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _template = require(\"./template\");\nvar _templateDefault = parcelHelpers.interopDefault(_template);\nvar _i18N = require(\"./i18n\");\nvar _i18NDefault = parcelHelpers.interopDefault(_i18N);\nvar _player = require(\"./player\");\nvar _playerDefault = parcelHelpers.interopDefault(_player);\nvar _control = require(\"./control\");\nvar _controlDefault = parcelHelpers.interopDefault(_control);\nvar _contextmenu = require(\"./contextmenu\");\nvar _contextmenuDefault = parcelHelpers.interopDefault(_contextmenu);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _subtitle = require(\"./subtitle\");\nvar _subtitleDefault = parcelHelpers.interopDefault(_subtitle);\nvar _events = require(\"./events\");\nvar _eventsDefault = parcelHelpers.interopDefault(_events);\nvar _hotkey = require(\"./hotkey\");\nvar _hotkeyDefault = parcelHelpers.interopDefault(_hotkey);\nvar _layer = require(\"./layer\");\nvar _layerDefault = parcelHelpers.interopDefault(_layer);\nvar _loading = require(\"./loading\");\nvar _loadingDefault = parcelHelpers.interopDefault(_loading);\nvar _notice = require(\"./notice\");\nvar _noticeDefault = parcelHelpers.interopDefault(_notice);\nvar _mask = require(\"./mask\");\nvar _maskDefault = parcelHelpers.interopDefault(_mask);\nvar _icons = require(\"./icons\");\nvar _iconsDefault = parcelHelpers.interopDefault(_icons);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _storage = require(\"./storage\");\nvar _storageDefault = parcelHelpers.interopDefault(_storage);\nvar _plugins = require(\"./plugins\");\nvar _pluginsDefault = parcelHelpers.interopDefault(_plugins);\nlet id = 0;\nconst instances = [];\nclass Artplayer extends (0, _emitterDefault.default) {\n constructor(option, readyCallback){\n super();\n this.id = ++id;\n const mergeOption = _utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n this.option = (0, _optionValidatorDefault.default)(mergeOption, (0, _schemeDefault.default));\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 this.template = new (0, _templateDefault.default)(this);\n this.events = new (0, _eventsDefault.default)(this);\n this.storage = new (0, _storageDefault.default)(this);\n this.icons = new (0, _iconsDefault.default)(this);\n this.i18n = new (0, _i18NDefault.default)(this);\n this.notice = new (0, _noticeDefault.default)(this);\n this.player = new (0, _playerDefault.default)(this);\n this.layers = new (0, _layerDefault.default)(this);\n this.controls = new (0, _controlDefault.default)(this);\n this.contextmenu = new (0, _contextmenuDefault.default)(this);\n this.subtitle = new (0, _subtitleDefault.default)(this);\n this.info = new (0, _infoDefault.default)(this);\n this.loading = new (0, _loadingDefault.default)(this);\n this.hotkey = new (0, _hotkeyDefault.default)(this);\n this.mask = new (0, _maskDefault.default)(this);\n this.setting = new (0, _settingDefault.default)(this);\n this.plugins = new (0, _pluginsDefault.default)(this);\n if (typeof readyCallback === 'function') this.on('ready', ()=>readyCallback.call(this, this));\n if (Artplayer.DEBUG) {\n const log = (msg)=>console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)this.on('video:' + (0, _configDefault.default).events[index], (event)=>log('Event@' + event.type));\n }\n instances.push(this);\n }\n static get instances() {\n return instances;\n }\n static get version() {\n return 0, _packageJson.version;\n }\n static get config() {\n return 0, _configDefault.default;\n }\n static get utils() {\n return _utils;\n }\n static get scheme() {\n return 0, _schemeDefault.default;\n }\n static get Emitter() {\n return 0, _emitterDefault.default;\n }\n static get validator() {\n return 0, _optionValidatorDefault.default;\n }\n static get kindOf() {\n return (0, _optionValidatorDefault.default).kindOf;\n }\n static get html() {\n return (0, _templateDefault.default).html;\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 get proxy() {\n return this.events.proxy;\n }\n get query() {\n return this.template.query;\n }\n get video() {\n return this.template.$video;\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}\nexports.default = Artplayer;\nArtplayer.STYLE = (0, _indexLessDefault.default);\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 = [\n 0.5,\n 0.75,\n 1,\n 1.25,\n 1.5,\n 2\n];\nArtplayer.ASPECT_RATIO = [\n 'default',\n '4:3',\n '16:9'\n];\nArtplayer.FLIP = [\n 'normal',\n 'horizontal',\n 'vertical'\n];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\nif (_utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n _utils.setStyleText('artplayer-style', (0, _indexLessDefault.default));\n setTimeout(()=>{\n if (Artplayer.LOG_VERSION) console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', '');\n }, 100);\n}\n\n},{\"../package.json\":\"3QATz\",\"bundle-text:./style/index.less\":\"7b65e\",\"option-validator\":\"glVMO\",\"./utils/emitter\":\"evjIj\",\"./utils\":\"2zmtQ\",\"./scheme\":\"lGoF1\",\"./config\":\"auZaO\",\"./template\":\"1uh6E\",\"./i18n\":\"3udCS\",\"./player\":\"9mB1U\",\"./control\":\"3aoXC\",\"./contextmenu\":\"5YYHx\",\"./info\":\"j6kB4\",\"./subtitle\":\"ldqPL\",\"./events\":\"5jGH8\",\"./hotkey\":\"8a1Mr\",\"./layer\":\"3WCuK\",\"./loading\":\"inwRV\",\"./notice\":\"iAojr\",\"./mask\":\"4ZuYu\",\"./icons\":\"aEpTt\",\"./setting\":\"9Bz5C\",\"./storage\":\"ly2Yz\",\"./plugins\":\"enDIw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3QATz\":[function(require,module,exports,__globalThis) {\nmodule.exports = JSON.parse(\"{\\\"license\\\":\\\"MIT\\\",\\\"name\\\":\\\"artplayer\\\",\\\"version\\\":\\\"5.2.4\\\",\\\"main\\\":\\\"dist/artplayer.js\\\",\\\"legacy\\\":\\\"dist/artplayer.legacy.js\\\",\\\"module\\\":\\\"dist/artplayer.esm.js\\\",\\\"types\\\":\\\"types/artplayer.d.ts\\\",\\\"exports\\\":{\\\"import\\\":\\\"./dist/artplayer.esm.js\\\",\\\"require\\\":\\\"./dist/artplayer.js\\\",\\\"default\\\":\\\"./dist/artplayer.js\\\"},\\\"homepage\\\":\\\"https://artplayer.org\\\",\\\"author\\\":\\\"Harvey Zack \\\",\\\"browserslist\\\":\\\"last 1 Chrome version\\\",\\\"description\\\":\\\"ArtPlayer.js is a modern and full featured HTML5 video player\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/zhw2590582/ArtPlayer.git\\\"},\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/zhw2590582/ArtPlayer/issues\\\"},\\\"keywords\\\":[\\\"html5\\\",\\\"video\\\",\\\"player\\\"],\\\"dependencies\\\":{\\\"option-validator\\\":\\\"^2.0.6\\\"}}\");\n\n},{}],\"7b65e\":[function(require,module,exports,__globalThis) {\nmodule.exports = \".art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:\\\"\\\";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=\\\"\\\"]:before,[aria-label=\\\"\\\"]:after,[data-hint=\\\"\\\"]:before,[data-hint=\\\"\\\"]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}\";\n\n},{}],\"glVMO\":[function(require,module,exports,__globalThis) {\n!function(r, t) {\n module.exports = t();\n}(this, function() {\n \"use strict\";\n function e(r) {\n return (e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(r) {\n return typeof r;\n } : function(r) {\n return r && \"function\" == typeof Symbol && r.constructor === Symbol && r !== Symbol.prototype ? \"symbol\" : typeof r;\n })(r);\n }\n var n = Object.prototype.toString, c = function(r) {\n if (void 0 === r) return \"undefined\";\n if (null === r) return \"null\";\n var t = e(r);\n if (\"boolean\" === t) return \"boolean\";\n if (\"string\" === t) return \"string\";\n if (\"number\" === t) return \"number\";\n if (\"symbol\" === t) return \"symbol\";\n if (\"function\" === t) return function(r) {\n return \"GeneratorFunction\" === o(r);\n }(r) ? \"generatorfunction\" : \"function\";\n if (function(r) {\n return Array.isArray ? Array.isArray(r) : r instanceof Array;\n }(r)) return \"array\";\n if (function(r) {\n if (r.constructor && \"function\" == typeof r.constructor.isBuffer) return r.constructor.isBuffer(r);\n return !1;\n }(r)) return \"buffer\";\n if (function(r) {\n try {\n if (\"number\" == typeof r.length && \"function\" == typeof r.callee) return !0;\n } catch (r) {\n if (-1 !== r.message.indexOf(\"callee\")) return !0;\n }\n return !1;\n }(r)) return \"arguments\";\n if (function(r) {\n return r instanceof Date || \"function\" == typeof r.toDateString && \"function\" == typeof r.getDate && \"function\" == typeof r.setDate;\n }(r)) return \"date\";\n if (function(r) {\n return r instanceof Error || \"string\" == typeof r.message && r.constructor && \"number\" == typeof r.constructor.stackTraceLimit;\n }(r)) return \"error\";\n if (function(r) {\n return r instanceof RegExp || \"string\" == typeof r.flags && \"boolean\" == typeof r.ignoreCase && \"boolean\" == typeof r.multiline && \"boolean\" == typeof r.global;\n }(r)) return \"regexp\";\n switch(o(r)){\n case \"Symbol\":\n return \"symbol\";\n case \"Promise\":\n return \"promise\";\n case \"WeakMap\":\n return \"weakmap\";\n case \"WeakSet\":\n return \"weakset\";\n case \"Map\":\n return \"map\";\n case \"Set\":\n return \"set\";\n case \"Int8Array\":\n return \"int8array\";\n case \"Uint8Array\":\n return \"uint8array\";\n case \"Uint8ClampedArray\":\n return \"uint8clampedarray\";\n case \"Int16Array\":\n return \"int16array\";\n case \"Uint16Array\":\n return \"uint16array\";\n case \"Int32Array\":\n return \"int32array\";\n case \"Uint32Array\":\n return \"uint32array\";\n case \"Float32Array\":\n return \"float32array\";\n case \"Float64Array\":\n return \"float64array\";\n }\n if (function(r) {\n return \"function\" == typeof r.throw && \"function\" == typeof r.return && \"function\" == typeof r.next;\n }(r)) return \"generator\";\n switch(t = n.call(r)){\n case \"[object Object]\":\n return \"object\";\n case \"[object Map Iterator]\":\n return \"mapiterator\";\n case \"[object Set Iterator]\":\n return \"setiterator\";\n case \"[object String Iterator]\":\n return \"stringiterator\";\n case \"[object Array Iterator]\":\n return \"arrayiterator\";\n }\n return t.slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n };\n function o(r) {\n return r.constructor ? r.constructor.name : null;\n }\n function f(r, t) {\n var e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [\n \"option\"\n ];\n return s(r, t, e), y(r, t, e), function(a, i, u) {\n var r = c(i), t = c(a);\n if (\"object\" === r) {\n if (\"object\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'object' type, but got '\").concat(t, \"'\"));\n Object.keys(i).forEach(function(r) {\n var t = a[r], e = i[r], n = u.slice();\n n.push(r), s(t, e, n), y(t, e, n), f(t, e, n);\n });\n }\n if (\"array\" === r) {\n if (\"array\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'array' type, but got '\").concat(t, \"'\"));\n a.forEach(function(r, t) {\n var e = a[t], n = i[t] || i[0], o = u.slice();\n o.push(t), s(e, n, o), y(e, n, o), f(e, n, o);\n });\n }\n }(r, t, e), r;\n }\n function s(r, t, e) {\n if (\"string\" === c(t)) {\n var n = c(r);\n if (\"?\" === t[0] && (t = t.slice(1) + \"|undefined\"), !(-1 < t.indexOf(\"|\") ? t.split(\"|\").map(function(r) {\n return r.toLowerCase().trim();\n }).filter(Boolean).some(function(r) {\n return n === r;\n }) : t.toLowerCase().trim() === n)) throw new Error(\"[Type Error]: '\".concat(e.join(\".\"), \"' require '\").concat(t, \"' type, but got '\").concat(n, \"'\"));\n }\n }\n function y(r, t, e) {\n if (\"function\" === c(t)) {\n var n = t(r, c(r), e);\n if (!0 !== n) {\n var o = c(n);\n throw \"string\" === o ? new Error(n) : \"error\" === o ? n : new Error(\"[Validator Error]: The scheme for '\".concat(e.join(\".\"), \"' validator require return true, but got '\").concat(n, \"'\"));\n }\n }\n }\n return f.kindOf = c, f;\n});\n\n},{}],\"evjIj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn,\n ctx\n });\n return this;\n }\n once(name, fn, ctx) {\n const self = this;\n function listener(...args) {\n self.off(name, listener);\n fn.apply(ctx, args);\n }\n listener._ = fn;\n return this.on(name, listener, ctx);\n }\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n for(let i = 0; i < evtArr.length; i += 1)evtArr[i].fn.apply(evtArr[i].ctx, data);\n return this;\n }\n off(name, callback) {\n const e = this.e || (this.e = {});\n const evts = e[name];\n const liveEvents = [];\n if (evts && callback) {\n for(let i = 0, len = evts.length; i < len; i += 1)if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n if (liveEvents.length) e[name] = liveEvents;\n else delete e[name];\n return this;\n }\n}\nexports.default = Emitter;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"w4pLy\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}],\"2zmtQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nparcelHelpers.exportAll(_dom, exports);\nvar _error = require(\"./error\");\nparcelHelpers.exportAll(_error, exports);\nvar _subtitle = require(\"./subtitle\");\nparcelHelpers.exportAll(_subtitle, exports);\nvar _file = require(\"./file\");\nparcelHelpers.exportAll(_file, exports);\nvar _property = require(\"./property\");\nparcelHelpers.exportAll(_property, exports);\nvar _time = require(\"./time\");\nparcelHelpers.exportAll(_time, exports);\nvar _format = require(\"./format\");\nparcelHelpers.exportAll(_format, exports);\nvar _compatibility = require(\"./compatibility\");\nparcelHelpers.exportAll(_compatibility, exports);\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"./subtitle\":\"NXvdl\",\"./file\":\"9RWGQ\",\"./property\":\"bfNe9\",\"./time\":\"afTRg\",\"./format\":\"1I37O\",\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"6a4fx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"query\", ()=>query);\nparcelHelpers.export(exports, \"queryAll\", ()=>queryAll);\nparcelHelpers.export(exports, \"addClass\", ()=>addClass);\nparcelHelpers.export(exports, \"removeClass\", ()=>removeClass);\nparcelHelpers.export(exports, \"hasClass\", ()=>hasClass);\nparcelHelpers.export(exports, \"append\", ()=>append);\nparcelHelpers.export(exports, \"remove\", ()=>remove);\nparcelHelpers.export(exports, \"setStyle\", ()=>setStyle);\nparcelHelpers.export(exports, \"setStyles\", ()=>setStyles);\nparcelHelpers.export(exports, \"getStyle\", ()=>getStyle);\nparcelHelpers.export(exports, \"siblings\", ()=>siblings);\nparcelHelpers.export(exports, \"inverseClass\", ()=>inverseClass);\nparcelHelpers.export(exports, \"tooltip\", ()=>tooltip);\nparcelHelpers.export(exports, \"isInViewport\", ()=>isInViewport);\nparcelHelpers.export(exports, \"includeFromEvent\", ()=>includeFromEvent);\nparcelHelpers.export(exports, \"replaceElement\", ()=>replaceElement);\nparcelHelpers.export(exports, \"createElement\", ()=>createElement);\nparcelHelpers.export(exports, \"getIcon\", ()=>getIcon);\nparcelHelpers.export(exports, \"setStyleText\", ()=>setStyleText);\nparcelHelpers.export(exports, \"supportsFlex\", ()=>supportsFlex);\nparcelHelpers.export(exports, \"getRect\", ()=>getRect);\nparcelHelpers.export(exports, \"loadImg\", ()=>loadImg);\nvar _compatibility = require(\"./compatibility\");\nfunction query(selector, parent = document) {\n return parent.querySelector(selector);\n}\nfunction queryAll(selector, parent = document) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction addClass(target, className) {\n return target.classList.add(className);\n}\nfunction removeClass(target, className) {\n return target.classList.remove(className);\n}\nfunction hasClass(target, className) {\n return target.classList.contains(className);\n}\nfunction append(parent, child) {\n if (child instanceof Element) parent.appendChild(child);\n else parent.insertAdjacentHTML('beforeend', String(child));\n return parent.lastElementChild || parent.lastChild;\n}\nfunction remove(child) {\n return child.parentNode.removeChild(child);\n}\nfunction setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\nfunction setStyles(element, styles) {\n for(const key in styles)setStyle(element, key, styles[key]);\n return element;\n}\nfunction getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\nfunction siblings(target) {\n return Array.from(target.parentElement.children).filter((item)=>item !== target);\n}\nfunction inverseClass(target, className) {\n siblings(target).forEach((item)=>removeClass(item, className));\n addClass(target, className);\n}\nfunction tooltip(target, msg, pos = 'top') {\n if (0, _compatibility.isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\nfunction 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}\nfunction includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\nfunction replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\nfunction createElement(tag) {\n return document.createElement(tag);\n}\nfunction 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}\nfunction 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') document.addEventListener('DOMContentLoaded', ()=>{\n document.head.appendChild($style);\n });\n else (document.head || document.documentElement).appendChild($style);\n }\n $style.textContent = style;\n}\nfunction supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\nfunction getRect(el) {\n return el.getBoundingClientRect();\n}\nfunction loadImg(url, scale) {\n return new Promise((resolve, reject)=>{\n const img = new Image();\n img.onload = function() {\n if (!scale || scale === 1) 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 canvas.toBlob((blob)=>{\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n scaledImg.onload = function() {\n resolve(scaledImg);\n };\n scaledImg.onerror = function() {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n scaledImg.src = blobUrl;\n });\n }\n };\n img.onerror = function() {\n reject(new Error(`Image load failed: ${url}`));\n };\n img.src = url;\n });\n}\n\n},{\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lHM5L\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"userAgent\", ()=>userAgent);\nparcelHelpers.export(exports, \"isSafari\", ()=>isSafari);\nparcelHelpers.export(exports, \"isWechat\", ()=>isWechat);\nparcelHelpers.export(exports, \"isIE\", ()=>isIE);\nparcelHelpers.export(exports, \"isAndroid\", ()=>isAndroid);\nparcelHelpers.export(exports, \"isIOS\", ()=>isIOS);\nparcelHelpers.export(exports, \"isIOS13\", ()=>isIOS13);\nparcelHelpers.export(exports, \"isMobile\", ()=>isMobile);\nparcelHelpers.export(exports, \"isBrowser\", ()=>isBrowser);\nconst userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.userAgent : '');\nconst isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nconst isWechat = /MicroMessenger/i.test(userAgent);\nconst isIE = /MSIE|Trident/i.test(userAgent);\nconst isAndroid = /android/i.test(userAgent);\nconst isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\nconst isIOS13 = isIOS || userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1;\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nconst isBrowser = typeof window !== 'undefined';\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"anKPB\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ArtPlayerError\", ()=>ArtPlayerError);\nparcelHelpers.export(exports, \"errorHandle\", ()=>errorHandle);\nclass ArtPlayerError extends Error {\n constructor(message, context){\n super(message);\n if (typeof Error.captureStackTrace === 'function') Error.captureStackTrace(this, context || this.constructor);\n this.name = 'ArtPlayerError';\n }\n}\nfunction errorHandle(condition, msg) {\n if (!condition) throw new ArtPlayerError(msg);\n return condition;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"NXvdl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"srtToVtt\", ()=>srtToVtt);\nparcelHelpers.export(exports, \"vttToBlob\", ()=>vttToBlob);\nparcelHelpers.export(exports, \"assToVtt\", ()=>assToVtt);\nfunction 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) ms = $2 + '00';\n if ($2.length === 2) ms = $2 + '0';\n return `${$1},${ms}`;\n });\n}\nfunction srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(fixSrt(srtText).replace(/\\{\\\\([ibu])\\}/g, '').replace(/\\{\\\\([ibu])1\\}/g, '<$1>').replace(/\\{([ibu])\\}/g, '<$1>').replace(/\\{\\/([ibu])\\}/g, '').replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2').replace(/{[\\s\\S]*?}/g, '').concat('\\r\\n\\r\\n'));\n}\nfunction vttToBlob(vttText) {\n return URL.createObjectURL(new Blob([\n vttText\n ], {\n type: 'text/vtt'\n }));\n}\nfunction assToVtt(ass) {\n const reAss = new RegExp(\"Dialogue:\\\\s\\\\d,(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\\\s\\\\S]*)$\", 'i');\n function fixTime(time = '') {\n return time.split(/[:.]/).map((item, index, arr)=>{\n if (index === arr.length - 1) {\n if (item.length === 1) return `.${item}00`;\n if (item.length === 2) return `.${item}0`;\n } else if (item.length === 1) return (index === 0 ? '0' : ':0') + item;\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n }).join('');\n }\n return \"WEBVTT\\n\\n\" + ass.split(/\\r?\\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].replace(/{[\\s\\S]*?}/g, '').replace(/(\\\\N)/g, '\\n').trim().split(/\\r?\\n/).map((item)=>item.trim()).join('\\n')\n };\n }).filter((line)=>line).map((line, index)=>{\n if (line) return index + 1 + '\\n' + `${line.start} --> ${line.end}` + '\\n' + `${line.text}`;\n return '';\n }).filter((line)=>line.trim()).join('\\n\\n');\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9RWGQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getExt\", ()=>getExt);\nparcelHelpers.export(exports, \"download\", ()=>download);\nfunction getExt(url) {\n if (url.includes('?')) return getExt(url.split('?')[0]);\n if (url.includes('#')) return getExt(url.split('#')[0]);\n return url.trim().toLowerCase().split('.').pop();\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"bfNe9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"def\", ()=>def);\nparcelHelpers.export(exports, \"has\", ()=>has);\nparcelHelpers.export(exports, \"get\", ()=>get);\nparcelHelpers.export(exports, \"mergeDeep\", ()=>mergeDeep);\nconst def = Object.defineProperty;\nconst { hasOwnProperty } = Object.prototype;\nfunction has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\nfunction get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\nfunction 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)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"afTRg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"sleep\", ()=>sleep);\nparcelHelpers.export(exports, \"debounce\", ()=>debounce);\nparcelHelpers.export(exports, \"throttle\", ()=>throttle);\nfunction sleep(ms = 0) {\n return new Promise((resolve)=>setTimeout(resolve, ms));\n}\nfunction debounce(func, duration) {\n let timeout;\n return function(...args) {\n const effect = ()=>{\n timeout = null;\n return func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\nfunction throttle(func, duration) {\n let shouldWait = false;\n return function(...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n setTimeout(function() {\n shouldWait = false;\n }, duration);\n }\n };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1I37O\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"clamp\", ()=>clamp);\nparcelHelpers.export(exports, \"capitalize\", ()=>capitalize);\nparcelHelpers.export(exports, \"secondToTime\", ()=>secondToTime);\nparcelHelpers.export(exports, \"escape\", ()=>escape);\nparcelHelpers.export(exports, \"unescape\", ()=>unescape);\nfunction clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction 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 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n}\nfunction escape(str) {\n return str.replace(/[&<>'\"]/g, (tag)=>({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"'\n })[tag] || tag);\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lGoF1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ComponentOption\", ()=>ComponentOption);\nvar _utils = require(\"../utils\");\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nfunction validElement(value, type, paths) {\n return (0, _utils.errorHandle)(type === s || type === n || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\nconst 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};\nexports.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: [\n f\n ],\n layers: [\n ComponentOption\n ],\n contextmenu: [\n ComponentOption\n ],\n settings: [\n ComponentOption\n ],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths)=>{\n const position = [\n 'top',\n 'left',\n 'right'\n ];\n return (0, _utils.errorHandle)(position.includes(value), `${paths.join('.')} only accept ${position.toString()} as parameters`);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"auZaO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.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: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen'\n ]\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1uh6E\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _utils = require(\"./utils\");\nclass Template {\n constructor(art){\n this.art = art;\n const { option, constructor } = art;\n if (option.container instanceof Element) this.$container = option.container;\n else {\n this.$container = (0, _utils.query)(option.container);\n (0, _utils.errorHandle)(this.$container, `No container element found by ${option.container}`);\n }\n (0, _utils.errorHandle)((0, _utils.supportsFlex)(), 'The current browser does not support flex layout');\n const type = this.$container.tagName.toLowerCase();\n (0, _utils.errorHandle)(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n (0, _utils.errorHandle)(constructor.instances.every((ins)=>ins.template.$container !== this.$container), 'Cannot mount multiple instances on the same dom element');\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.init();\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
${0, _packageJson.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 query(className) {\n return (0, _utils.query)(className, this.$container);\n }\n init() {\n const { option } = this.art;\n if (!option.useSSR) this.$container.innerHTML = Template.html;\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 if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n (0, _utils.errorHandle)(video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement, `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`);\n (0, _utils.replaceElement)(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n if (option.backdrop) (0, _utils.addClass)(this.$player, 'art-backdrop');\n if (0, _utils.isMobile) (0, _utils.addClass)(this.$player, 'art-mobile');\n }\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) this.$container.innerHTML = '';\n else (0, _utils.addClass)(this.$player, 'art-destroy');\n }\n}\nexports.default = Template;\n\n},{\"../package.json\":\"3QATz\",\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3udCS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _zhCn = require(\"./zh-cn\");\nvar _zhCnDefault = parcelHelpers.interopDefault(_zhCn);\nclass I18n {\n constructor(art){\n this.art = art;\n this.languages = {\n 'zh-cn': (0, _zhCnDefault.default)\n };\n this.language = {};\n this.update(art.option.i18n);\n }\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n get(key) {\n return this.language[key] || key;\n }\n update(value) {\n this.languages = (0, _utils.mergeDeep)(this.languages, value);\n this.init();\n }\n}\nexports.default = I18n;\n\n},{\"../utils\":\"2zmtQ\",\"./zh-cn\":\"3CYMl\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3CYMl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst zhCn = {\n 'Video Info': \"\\u7EDF\\u8BA1\\u4FE1\\u606F\",\n Close: \"\\u5173\\u95ED\",\n 'Video Load Failed': \"\\u52A0\\u8F7D\\u5931\\u8D25\",\n Volume: \"\\u97F3\\u91CF\",\n Play: \"\\u64AD\\u653E\",\n Pause: \"\\u6682\\u505C\",\n Rate: \"\\u901F\\u5EA6\",\n Mute: \"\\u9759\\u97F3\",\n 'Video Flip': \"\\u753B\\u9762\\u7FFB\\u8F6C\",\n Horizontal: \"\\u6C34\\u5E73\",\n Vertical: \"\\u5782\\u76F4\",\n Reconnect: \"\\u91CD\\u65B0\\u8FDE\\u63A5\",\n 'Show Setting': \"\\u663E\\u793A\\u8BBE\\u7F6E\",\n 'Hide Setting': \"\\u9690\\u85CF\\u8BBE\\u7F6E\",\n Screenshot: \"\\u622A\\u56FE\",\n 'Play Speed': \"\\u64AD\\u653E\\u901F\\u5EA6\",\n 'Aspect Ratio': \"\\u753B\\u9762\\u6BD4\\u4F8B\",\n Default: \"\\u9ED8\\u8BA4\",\n Normal: \"\\u6B63\\u5E38\",\n Open: \"\\u6253\\u5F00\",\n 'Switch Video': \"\\u5207\\u6362\",\n 'Switch Subtitle': \"\\u5207\\u6362\\u5B57\\u5E55\",\n Fullscreen: \"\\u5168\\u5C4F\",\n 'Exit Fullscreen': \"\\u9000\\u51FA\\u5168\\u5C4F\",\n 'Web Fullscreen': \"\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Exit Web Fullscreen': \"\\u9000\\u51FA\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Mini Player': \"\\u8FF7\\u4F60\\u64AD\\u653E\\u5668\",\n 'PIP Mode': \"\\u5F00\\u542F\\u753B\\u4E2D\\u753B\",\n 'Exit PIP Mode': \"\\u9000\\u51FA\\u753B\\u4E2D\\u753B\",\n 'PIP Not Supported': \"\\u4E0D\\u652F\\u6301\\u753B\\u4E2D\\u753B\",\n 'Fullscreen Not Supported': \"\\u4E0D\\u652F\\u6301\\u5168\\u5C4F\",\n 'Subtitle Offset': \"\\u5B57\\u5E55\\u504F\\u79FB\",\n 'Last Seen': \"\\u4E0A\\u6B21\\u770B\\u5230\",\n 'Jump Play': \"\\u8DF3\\u8F6C\\u64AD\\u653E\",\n AirPlay: \"\\u9694\\u7A7A\\u64AD\\u653E\",\n 'AirPlay Not Available': \"\\u9694\\u7A7A\\u64AD\\u653E\\u4E0D\\u53EF\\u7528\"\n};\nexports.default = zhCn;\nif (typeof window !== 'undefined') window['artplayer-i18n-zh-cn'] = zhCn;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9mB1U\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _urlMix = require(\"./urlMix\");\nvar _urlMixDefault = parcelHelpers.interopDefault(_urlMix);\nvar _attrMix = require(\"./attrMix\");\nvar _attrMixDefault = parcelHelpers.interopDefault(_attrMix);\nvar _playMix = require(\"./playMix\");\nvar _playMixDefault = parcelHelpers.interopDefault(_playMix);\nvar _pauseMix = require(\"./pauseMix\");\nvar _pauseMixDefault = parcelHelpers.interopDefault(_pauseMix);\nvar _toggleMix = require(\"./toggleMix\");\nvar _toggleMixDefault = parcelHelpers.interopDefault(_toggleMix);\nvar _seekMix = require(\"./seekMix\");\nvar _seekMixDefault = parcelHelpers.interopDefault(_seekMix);\nvar _volumeMix = require(\"./volumeMix\");\nvar _volumeMixDefault = parcelHelpers.interopDefault(_volumeMix);\nvar _currentTimeMix = require(\"./currentTimeMix\");\nvar _currentTimeMixDefault = parcelHelpers.interopDefault(_currentTimeMix);\nvar _durationMix = require(\"./durationMix\");\nvar _durationMixDefault = parcelHelpers.interopDefault(_durationMix);\nvar _switchMix = require(\"./switchMix\");\nvar _switchMixDefault = parcelHelpers.interopDefault(_switchMix);\nvar _playbackRateMix = require(\"./playbackRateMix\");\nvar _playbackRateMixDefault = parcelHelpers.interopDefault(_playbackRateMix);\nvar _aspectRatioMix = require(\"./aspectRatioMix\");\nvar _aspectRatioMixDefault = parcelHelpers.interopDefault(_aspectRatioMix);\nvar _screenshotMix = require(\"./screenshotMix\");\nvar _screenshotMixDefault = parcelHelpers.interopDefault(_screenshotMix);\nvar _fullscreenMix = require(\"./fullscreenMix\");\nvar _fullscreenMixDefault = parcelHelpers.interopDefault(_fullscreenMix);\nvar _fullscreenWebMix = require(\"./fullscreenWebMix\");\nvar _fullscreenWebMixDefault = parcelHelpers.interopDefault(_fullscreenWebMix);\nvar _pipMix = require(\"./pipMix\");\nvar _pipMixDefault = parcelHelpers.interopDefault(_pipMix);\nvar _loadedMix = require(\"./loadedMix\");\nvar _loadedMixDefault = parcelHelpers.interopDefault(_loadedMix);\nvar _playedMix = require(\"./playedMix\");\nvar _playedMixDefault = parcelHelpers.interopDefault(_playedMix);\nvar _playingMix = require(\"./playingMix\");\nvar _playingMixDefault = parcelHelpers.interopDefault(_playingMix);\nvar _autoSizeMix = require(\"./autoSizeMix\");\nvar _autoSizeMixDefault = parcelHelpers.interopDefault(_autoSizeMix);\nvar _rectMix = require(\"./rectMix\");\nvar _rectMixDefault = parcelHelpers.interopDefault(_rectMix);\nvar _flipMix = require(\"./flipMix\");\nvar _flipMixDefault = parcelHelpers.interopDefault(_flipMix);\nvar _miniMix = require(\"./miniMix\");\nvar _miniMixDefault = parcelHelpers.interopDefault(_miniMix);\nvar _posterMix = require(\"./posterMix\");\nvar _posterMixDefault = parcelHelpers.interopDefault(_posterMix);\nvar _autoHeightMix = require(\"./autoHeightMix\");\nvar _autoHeightMixDefault = parcelHelpers.interopDefault(_autoHeightMix);\nvar _cssVarMix = require(\"./cssVarMix\");\nvar _cssVarMixDefault = parcelHelpers.interopDefault(_cssVarMix);\nvar _themeMix = require(\"./themeMix\");\nvar _themeMixDefault = parcelHelpers.interopDefault(_themeMix);\nvar _typeMix = require(\"./typeMix\");\nvar _typeMixDefault = parcelHelpers.interopDefault(_typeMix);\nvar _stateMix = require(\"./stateMix\");\nvar _stateMixDefault = parcelHelpers.interopDefault(_stateMix);\nvar _subtitleOffsetMix = require(\"./subtitleOffsetMix\");\nvar _subtitleOffsetMixDefault = parcelHelpers.interopDefault(_subtitleOffsetMix);\nvar _airplayMix = require(\"./airplayMix\");\nvar _airplayMixDefault = parcelHelpers.interopDefault(_airplayMix);\nvar _qualityMix = require(\"./qualityMix\");\nvar _qualityMixDefault = parcelHelpers.interopDefault(_qualityMix);\nvar _thumbnailsMix = require(\"./thumbnailsMix\");\nvar _thumbnailsMixDefault = parcelHelpers.interopDefault(_thumbnailsMix);\nvar _optionInit = require(\"./optionInit\");\nvar _optionInitDefault = parcelHelpers.interopDefault(_optionInit);\nvar _eventInit = require(\"./eventInit\");\nvar _eventInitDefault = parcelHelpers.interopDefault(_eventInit);\nclass Player {\n constructor(art){\n (0, _urlMixDefault.default)(art);\n (0, _attrMixDefault.default)(art);\n (0, _playMixDefault.default)(art);\n (0, _pauseMixDefault.default)(art);\n (0, _toggleMixDefault.default)(art);\n (0, _seekMixDefault.default)(art);\n (0, _volumeMixDefault.default)(art);\n (0, _currentTimeMixDefault.default)(art);\n (0, _durationMixDefault.default)(art);\n (0, _switchMixDefault.default)(art);\n (0, _playbackRateMixDefault.default)(art);\n (0, _aspectRatioMixDefault.default)(art);\n (0, _screenshotMixDefault.default)(art);\n (0, _fullscreenMixDefault.default)(art);\n (0, _fullscreenWebMixDefault.default)(art);\n (0, _pipMixDefault.default)(art);\n (0, _loadedMixDefault.default)(art);\n (0, _playedMixDefault.default)(art);\n (0, _playingMixDefault.default)(art);\n (0, _autoSizeMixDefault.default)(art);\n (0, _rectMixDefault.default)(art);\n (0, _flipMixDefault.default)(art);\n (0, _miniMixDefault.default)(art);\n (0, _posterMixDefault.default)(art);\n (0, _autoHeightMixDefault.default)(art);\n (0, _cssVarMixDefault.default)(art);\n (0, _themeMixDefault.default)(art);\n (0, _typeMixDefault.default)(art);\n (0, _stateMixDefault.default)(art);\n (0, _subtitleOffsetMixDefault.default)(art);\n (0, _airplayMixDefault.default)(art);\n (0, _qualityMixDefault.default)(art);\n (0, _thumbnailsMixDefault.default)(art);\n (0, _eventInitDefault.default)(art);\n (0, _optionInitDefault.default)(art);\n }\n}\nexports.default = Player;\n\n},{\"./urlMix\":\"gOtyE\",\"./attrMix\":\"53BhY\",\"./playMix\":\"1banF\",\"./pauseMix\":\"3wC1g\",\"./toggleMix\":\"27lNh\",\"./seekMix\":\"h3e53\",\"./volumeMix\":\"7ZLkO\",\"./currentTimeMix\":\"e6oTn\",\"./durationMix\":\"asbQ7\",\"./switchMix\":\"5l7tM\",\"./playbackRateMix\":\"dHiZV\",\"./aspectRatioMix\":\"7TM4D\",\"./screenshotMix\":\"9LouN\",\"./fullscreenMix\":\"dYSsN\",\"./fullscreenWebMix\":\"fF9Os\",\"./pipMix\":\"hDMWY\",\"./loadedMix\":\"7RkX2\",\"./playedMix\":\"jXVGX\",\"./playingMix\":\"5vvMN\",\"./autoSizeMix\":\"eukuj\",\"./rectMix\":\"dSo4g\",\"./flipMix\":\"dJ7GF\",\"./miniMix\":\"kZI2p\",\"./posterMix\":\"fIZNk\",\"./autoHeightMix\":\"24b5p\",\"./cssVarMix\":\"gK6U1\",\"./themeMix\":\"aIG6s\",\"./typeMix\":\"i5sGy\",\"./stateMix\":\"juKiS\",\"./subtitleOffsetMix\":\"arSae\",\"./airplayMix\":\"kIugI\",\"./qualityMix\":\"lDgAt\",\"./thumbnailsMix\":\"5Mloy\",\"./optionInit\":\"a5DcW\",\"./eventInit\":\"jpd3q\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gOtyE\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>urlMix);\nvar _utils = require(\"../utils\");\nfunction urlMix(art) {\n const { option, template: { $video } } = art;\n (0, _utils.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 || (0, _utils.getExt)(newUrl);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n await (0, _utils.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 if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) art.once('video:canplay', ()=>{\n art.emit('restart', newUrl);\n });\n }\n } else {\n await (0, _utils.sleep)();\n art.loading.show = true;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"53BhY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>attrMix);\nvar _utils = require(\"../utils\");\nfunction attrMix(art) {\n const { template: { $video } } = art;\n (0, _utils.def)(art, 'attr', {\n value (key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1banF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playMix);\nvar _utils = require(\"../utils\");\nfunction playMix(art) {\n const { i18n, notice, option, constructor: { instances }, template: { $video } } = art;\n (0, _utils.def)(art, 'play', {\n value: async function() {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n if (option.mutex) for(let index = 0; index < instances.length; index++){\n const instance = instances[index];\n if (instance !== art) instance.pause();\n }\n return result;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3wC1g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pauseMix);\nvar _utils = require(\"../utils\");\nfunction pauseMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"27lNh\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>toggleMix);\nvar _utils = require(\"../utils\");\nfunction toggleMix(art) {\n (0, _utils.def)(art, 'toggle', {\n value () {\n if (art.playing) return art.pause();\n else return art.play();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"h3e53\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>seekMix);\nvar _utils = require(\"../utils\");\nfunction seekMix(art) {\n const { notice } = art;\n (0, _utils.def)(art, 'seek', {\n set (time) {\n art.currentTime = time;\n if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n art.emit('seek', art.currentTime);\n }\n });\n (0, _utils.def)(art, 'forward', {\n set (time) {\n art.seek = art.currentTime + time;\n }\n });\n (0, _utils.def)(art, 'backward', {\n set (time) {\n art.seek = art.currentTime - time;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7ZLkO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volumeMix);\nvar _utils = require(\"../utils\");\nfunction volumeMix(art) {\n const { template: { $video }, i18n, notice, storage } = art;\n (0, _utils.def)(art, 'volume', {\n get: ()=>$video.volume || 0,\n set: (percentage)=>{\n $video.volume = (0, _utils.clamp)(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) storage.set('volume', $video.volume);\n }\n });\n (0, _utils.def)(art, 'muted', {\n get: ()=>$video.muted,\n set: (muted)=>{\n $video.muted = muted;\n art.emit('muted', muted);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"e6oTn\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>currentTimeMix);\nvar _utils = require(\"../utils\");\nfunction currentTimeMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'currentTime', {\n get: ()=>$video.currentTime || 0,\n set: (time)=>{\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = (0, _utils.clamp)(time, 0, art.duration);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"asbQ7\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>durationMix);\nvar _utils = require(\"../utils\");\nfunction durationMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5l7tM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>switchMix);\nvar _utils = require(\"../utils\");\nfunction 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 art.pause();\n art.url = url;\n art.notice.show = '';\n art.once('video:error', reject);\n art.once('video:loadedmetadata', ()=>{\n art.currentTime = currentTime;\n });\n art.once('video:canplay', async ()=>{\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n if (playing) await art.play();\n art.notice.show = '';\n resolve();\n });\n });\n }\n (0, _utils.def)(art, 'switchQuality', {\n value: (url)=>{\n return switchUrl(url, art.currentTime);\n }\n });\n (0, _utils.def)(art, 'switchUrl', {\n value: (url)=>{\n return switchUrl(url, 0);\n }\n });\n (0, _utils.def)(art, 'switch', {\n set: art.switchUrl\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dHiZV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRateMix);\nvar _utils = require(\"../utils\");\nfunction playbackRateMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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 art.playbackRate = 1;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7TM4D\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatioMix);\nvar _utils = require(\"../utils\");\nfunction aspectRatioMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n (0, _utils.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 (0, _utils.setStyle)($video, 'width', null);\n (0, _utils.setStyle)($video, 'height', null);\n (0, _utils.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 if (playerRatio > setupRatio) {\n (0, _utils.setStyle)($video, 'width', `${setupRatio * clientHeight}px`);\n (0, _utils.setStyle)($video, 'height', '100%');\n (0, _utils.setStyle)($video, 'margin', '0 auto');\n } else {\n (0, _utils.setStyle)($video, 'width', '100%');\n (0, _utils.setStyle)($video, 'height', `${clientWidth / setupRatio}px`);\n (0, _utils.setStyle)($video, 'margin', 'auto 0');\n }\n $player.dataset.aspectRatio = ratio;\n }\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LouN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshotMix);\nvar _utils = require(\"../utils\");\nfunction screenshotMix(art) {\n const { notice, template: { $video } } = art;\n const $canvas = (0, _utils.createElement)('canvas');\n (0, _utils.def)(art, 'getDataURL', {\n value: ()=>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 (0, _utils.def)(art, 'getBlobUrl', {\n value: ()=>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 (0, _utils.def)(art, 'screenshot', {\n value: async (name)=>{\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${(0, _utils.secondToTime)($video.currentTime)}`;\n (0, _utils.download)(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dYSsN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenMix);\nvar _screenfull = require(\"../libs/screenfull\");\nvar _screenfullDefault = parcelHelpers.interopDefault(_screenfull);\nvar _utils = require(\"../utils\");\nfunction fullscreenMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n const nativeScreenfull = (art)=>{\n (0, _screenfullDefault.default).on('change', ()=>{\n art.emit('fullscreen', (0, _screenfullDefault.default).isFullscreen);\n if ((0, _screenfullDefault.default).isFullscreen) {\n art.state = 'fullscreen';\n (0, _utils.addClass)($player, 'art-fullscreen');\n } else (0, _utils.removeClass)($player, 'art-fullscreen');\n art.emit('resize');\n });\n (0, _screenfullDefault.default).on('error', (event)=>{\n art.emit('fullscreenError', event);\n });\n (0, _utils.def)(art, 'fullscreen', {\n get () {\n return (0, _screenfullDefault.default).isFullscreen;\n },\n async set (value) {\n if (value) await (0, _screenfullDefault.default).request($player);\n else await (0, _screenfullDefault.default).exit();\n }\n });\n };\n const webkitScreenfull = (art)=>{\n art.proxy(document, 'webkitfullscreenchange', ()=>{\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n (0, _utils.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 $video.webkitExitFullscreen();\n }\n });\n };\n art.once('video:loadedmetadata', ()=>{\n if ((0, _screenfullDefault.default).isEnabled) nativeScreenfull(art);\n else if ($video.webkitSupportsFullscreen) webkitScreenfull(art);\n else (0, _utils.def)(art, 'fullscreen', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('Fullscreen Not Supported');\n }\n });\n // Asynchronous setting\n (0, _utils.def)(art, 'fullscreen', (0, _utils.get)(art, 'fullscreen'));\n });\n}\n\n},{\"../libs/screenfull\":\"9CUfT\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9CUfT\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst 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];\nconst nativeAPI = (()=>{\n if (typeof document === 'undefined') return false;\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n for (const methodList of methodMap){\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries())returnValue[unprefixedMethods[index]] = method;\n return returnValue;\n }\n }\n return false;\n})();\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror\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 screenfull.on('change', onFullScreenEntered);\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenEntered).catch(reject);\n });\n },\n exit () {\n return new Promise((resolve, reject)=>{\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n const onFullScreenExit = ()=>{\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n screenfull.on('change', onFullScreenExit);\n const returnPromise = document[nativeAPI.exitFullscreen]();\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenExit).catch(reject);\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) document.addEventListener(eventName, callback, false);\n },\n off (event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) document.removeEventListener(eventName, callback, false);\n },\n raw: nativeAPI\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});\nif (!nativeAPI) screenfull = {\n isEnabled: false\n};\nexports.default = screenfull;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fF9Os\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWebMix);\nvar _utils = require(\"../utils\");\nfunction fullscreenWebMix(art) {\n const { constructor, template: { $container, $player } } = art;\n let cssText = '';\n (0, _utils.def)(art, 'fullscreenWeb', {\n get () {\n return (0, _utils.hasClass)($player, 'art-fullscreen-web');\n },\n set (value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)(document.body, $player);\n art.state = 'fullscreenWeb';\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', '100%');\n (0, _utils.addClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)($container, $player);\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n (0, _utils.removeClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n art.emit('resize');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hDMWY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pipMix);\nvar _utils = require(\"../utils\");\nfunction nativePip(art) {\n const { template: { $video }, proxy, notice } = art;\n $video.disablePictureInPicture = false;\n (0, _utils.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 document.exitPictureInPicture().catch((err)=>{\n notice.show = err;\n throw err;\n });\n }\n });\n proxy($video, 'enterpictureinpicture', ()=>{\n art.emit('pip', true);\n });\n proxy($video, 'leavepictureinpicture', ()=>{\n art.emit('pip', false);\n });\n}\nfunction webkitPip(art) {\n const { $video } = art.template;\n $video.webkitSetPresentationMode('inline');\n (0, _utils.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}\nfunction pipMix(art) {\n const { i18n, notice, template: { $video } } = art;\n if (document.pictureInPictureEnabled) nativePip(art);\n else if ($video.webkitSupportsPresentationMode) webkitPip(art);\n else (0, _utils.def)(art, 'pip', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('PIP Not Supported');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7RkX2\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>loadedMix);\nvar _utils = require(\"../utils\");\nfunction loadedMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'loaded', {\n get: ()=>art.loadedTime / $video.duration\n });\n (0, _utils.def)(art, 'loadedTime', {\n get: ()=>{\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jXVGX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playedMix);\nvar _utils = require(\"../utils\");\nfunction playedMix(art) {\n (0, _utils.def)(art, 'played', {\n get: ()=>art.currentTime / art.duration\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5vvMN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playingMix);\nvar _utils = require(\"../utils\");\nfunction playingMix(art) {\n const { $video } = art.template;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eukuj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoSizeMix);\nvar _utils = require(\"../utils\");\nfunction autoSizeMix(art) {\n const { $container, $player, $video } = art.template;\n (0, _utils.def)(art, 'autoSize', {\n value () {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = (0, _utils.getRect)($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n if (containerRatio > videoRatio) {\n const percentage = height * videoRatio / width * 100;\n (0, _utils.setStyle)($player, 'width', `${percentage}%`);\n (0, _utils.setStyle)($player, 'height', '100%');\n } else {\n const percentage = width / videoRatio / height * 100;\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dSo4g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>rectMix);\nvar _utils = require(\"../utils\");\nfunction rectMix(art) {\n (0, _utils.def)(art, 'rect', {\n get: ()=>{\n return (0, _utils.getRect)(art.template.$player);\n }\n });\n const keys = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width'\n ];\n for(let index = 0; index < keys.length; index++){\n const key = keys[index];\n (0, _utils.def)(art, key, {\n get: ()=>{\n return art.rect[key];\n }\n });\n }\n (0, _utils.def)(art, 'x', {\n get: ()=>{\n return art.left + window.pageXOffset;\n }\n });\n (0, _utils.def)(art, 'y', {\n get: ()=>{\n return art.top + window.pageYOffset;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dJ7GF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flipMix);\nvar _utils = require(\"../utils\");\nfunction flipMix(art) {\n const { template: { $player }, i18n, notice } = art;\n (0, _utils.def)(art, 'flip', {\n get () {\n return $player.dataset.flip || 'normal';\n },\n set (flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') delete $player.dataset.flip;\n else $player.dataset.flip = flip;\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get((0, _utils.capitalize)(flip))}`;\n art.emit('flip', flip);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kZI2p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniMix);\nvar _utils = require(\"../utils\");\nfunction miniMix(art) {\n const { icons, proxy, storage, template: { $player, $video } } = art;\n let isDragging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.removeClass)($player, 'art-mini');\n (0, _utils.setStyle)($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n function initState($play, $pause) {\n if (art.playing) {\n (0, _utils.setStyle)($play, 'display', `none`);\n (0, _utils.setStyle)($pause, 'display', `flex`);\n } else {\n (0, _utils.setStyle)($play, 'display', `flex`);\n (0, _utils.setStyle)($pause, 'display', `none`);\n }\n }\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.append)($mini, $video);\n return (0, _utils.setStyle)($mini, 'display', 'flex');\n } else {\n const $mini = (0, _utils.createElement)('div');\n (0, _utils.addClass)($mini, 'art-mini-popup');\n (0, _utils.append)(document.body, $mini);\n art.template.$mini = $mini;\n (0, _utils.append)($mini, $video);\n const $close = (0, _utils.append)($mini, `
`);\n (0, _utils.append)($close, icons.close);\n proxy($close, 'click', hideMini);\n const $state = (0, _utils.append)($mini, `
`);\n const $play = (0, _utils.append)($state, icons.play);\n const $pause = (0, _utils.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 proxy($mini, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n (0, _utils.addClass)($mini, 'art-mini-dragging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n (0, _utils.setStyle)($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) {\n isDragging = false;\n (0, _utils.removeClass)($mini, 'art-mini-dragging');\n const rect = (0, _utils.getRect)($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n (0, _utils.setStyle)($mini, 'left', `${rect.left}px`);\n (0, _utils.setStyle)($mini, 'top', `${rect.top}px`);\n (0, _utils.setStyle)($mini, 'transform', null);\n }\n });\n return $mini;\n }\n }\n function initMini() {\n const { $mini } = art.template;\n const rect = (0, _utils.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 (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n }\n (0, _utils.def)(art, 'mini', {\n get () {\n return (0, _utils.hasClass)($player, 'art-mini');\n },\n set (value) {\n if (value) {\n art.state = 'mini';\n (0, _utils.addClass)($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (typeof top === 'number' && typeof left === 'number') {\n (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n if (!(0, _utils.isInViewport)($mini)) initMini();\n } else initMini();\n art.emit('mini', true);\n } else hideMini();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fIZNk\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>posterMix);\nvar _utils = require(\"../utils\");\nfunction posterMix(art) {\n const { template: { $poster } } = art;\n (0, _utils.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 (0, _utils.setStyle)($poster, 'backgroundImage', `url(${url})`);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"24b5p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoHeightMix);\nvar _utils = require(\"../utils\");\nfunction autoHeightMix(art) {\n const { template: { $container, $video } } = art;\n (0, _utils.def)(art, 'autoHeight', {\n value () {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n (0, _utils.setStyle)($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gK6U1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>cssVarMix);\nvar _utils = require(\"../utils\");\nfunction cssVarMix(art) {\n const { $player } = art.template;\n (0, _utils.def)(art, 'cssVar', {\n value (key, value) {\n if (value) return $player.style.setProperty(key, value);\n else return getComputedStyle($player).getPropertyValue(key);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aIG6s\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>themeMix);\nvar _utils = require(\"../utils\");\nfunction themeMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"i5sGy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>typeMix);\nvar _utils = require(\"../utils\");\nfunction typeMix(art) {\n (0, _utils.def)(art, 'type', {\n get () {\n return art.option.type;\n },\n set (type) {\n art.option.type = type;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"juKiS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>stateMix);\nvar _utils = require(\"../utils\");\nfunction stateMix(art) {\n const states = [\n 'mini',\n 'pip',\n 'fullscreen',\n 'fullscreenWeb'\n ];\n (0, _utils.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]) art[prop] = false;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"arSae\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffsetMix);\nvar _utils = require(\"../utils\");\nfunction subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n (0, _utils.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 = (0, _utils.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 = (0, _utils.clamp)(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kIugI\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplayMix);\nvar _utils = require(\"../utils\");\nfunction airplayMix(art) {\n const { i18n, notice, proxy, template: { $video } } = art;\n let available = true;\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) 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 available = false;\n (0, _utils.def)(art, 'airplay', {\n value () {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else notice.show = i18n.get('AirPlay Not Available');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lDgAt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>qualityMix);\nvar _utils = require(\"../utils\");\nfunction qualityMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Mloy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>thumbnailsMix);\nvar _utils = require(\"../utils\");\nfunction thumbnailsMix(art) {\n const { events, option, template: { $progress, $video } } = art;\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\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 (0, _utils.setStyle)($thumbnails, 'backgroundImage', `url(${image.src})`);\n (0, _utils.setStyle)($thumbnails, 'height', `${height2}px`);\n (0, _utils.setStyle)($thumbnails, 'width', `${width2}px`);\n (0, _utils.setStyle)($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', 0);\n else if (posWidth > $progress.clientWidth - width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n else (0, _utils.setStyle)($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n events.hover($progress, ()=>{\n isHover = true;\n }, ()=>{\n isHover = false;\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 const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true;\n image = await (0, _utils.loadImg)(url, scale);\n isLoad = true;\n }\n if (!isLoad || !isHover) return;\n const width = $progress.clientWidth * percentage;\n (0, _utils.setStyle)($thumbnails, 'display', 'flex');\n if (width > 0 && width < $progress.clientWidth) showThumbnails(width);\n else if (!(0, _utils.isMobile)) (0, _utils.setStyle)($thumbnails, 'display', 'none');\n if (isMobileDragging) {\n clearTimeout(timer);\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"a5DcW\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>optionInit);\nvar _utils = require(\"../utils\");\nfunction optionInit(art) {\n const { option, storage, template: { $video, $poster } } = art;\n for(const key in option.moreVideoAttr)art.attr(key, option.moreVideoAttr[key]);\n if (option.muted) art.muted = option.muted;\n if (option.volume) $video.volume = (0, _utils.clamp)(option.volume, 0, 1);\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') $video.volume = (0, _utils.clamp)(volumeStorage, 0, 1);\n if (option.poster) (0, _utils.setStyle)($poster, 'backgroundImage', `url(${option.poster})`);\n if (option.autoplay) $video.autoplay = option.autoplay;\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n if (option.theme) option.cssVar['--art-theme'] = option.theme;\n for(const key in option.cssVar)art.cssVar(key, option.cssVar[key]);\n art.url = option.url;\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jpd3q\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>eventInit);\nvar _config = require(\"../config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _utils = require(\"../utils\");\nfunction eventInit(art) {\n const { i18n, notice, option, constructor, proxy, template: { $player, $video, $poster } } = art;\n let reconnectTime = 0;\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)proxy($video, (0, _configDefault.default).events[index], (event)=>{\n art.emit(`video:${event.type}`, event);\n });\n // art.on('video:abort', () => {\n // });\n art.on('video:canplay', ()=>{\n reconnectTime = 0;\n art.loading.show = false;\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 // art.on('video:canplaythrough', () => {\n // });\n // art.on('video:durationchange', () => {\n // });\n // art.on('video:emptied', () => {\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 art.on('video:error', async (error)=>{\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await (0, _utils.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 (0, _utils.addClass)($player, 'art-error');\n await (0, _utils.sleep)(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n }\n });\n // art.on('video:loadeddata', () => {\n // });\n art.on('video:loadedmetadata', ()=>{\n art.emit('resize');\n if (0, _utils.isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n art.on('video:loadstart', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n art.on('video:pause', ()=>{\n art.controls.show = true;\n art.mask.show = true;\n });\n art.on('video:play', ()=>{\n art.mask.show = false;\n (0, _utils.setStyle)($poster, 'display', 'none');\n });\n art.on('video:playing', ()=>{\n art.mask.show = false;\n });\n art.on('video:progress', ()=>{\n if (art.playing) art.loading.show = false;\n });\n // art.on('video:ratechange', () => {\n // });\n art.on('video:seeked', ()=>{\n art.loading.show = false;\n art.mask.show = true;\n });\n art.on('video:seeking', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n // art.on('video:stalled', () => {\n // });\n // art.on('video:suspend', () => {\n // });\n art.on('video:timeupdate', ()=>{\n art.mask.show = false;\n });\n // art.on('video:volumechange', () => {\n // });\n art.on('video:waiting', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n\n},{\"../config\":\"auZaO\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3aoXC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _fullscreen = require(\"./fullscreen\");\nvar _fullscreenDefault = parcelHelpers.interopDefault(_fullscreen);\nvar _fullscreenWeb = require(\"./fullscreenWeb\");\nvar _fullscreenWebDefault = parcelHelpers.interopDefault(_fullscreenWeb);\nvar _pip = require(\"./pip\");\nvar _pipDefault = parcelHelpers.interopDefault(_pip);\nvar _playAndPause = require(\"./playAndPause\");\nvar _playAndPauseDefault = parcelHelpers.interopDefault(_playAndPause);\nvar _progress = require(\"./progress\");\nvar _progressDefault = parcelHelpers.interopDefault(_progress);\nvar _time = require(\"./time\");\nvar _timeDefault = parcelHelpers.interopDefault(_time);\nvar _volume = require(\"./volume\");\nvar _volumeDefault = parcelHelpers.interopDefault(_volume);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _screenshot = require(\"./screenshot\");\nvar _screenshotDefault = parcelHelpers.interopDefault(_screenshot);\nvar _airplay = require(\"./airplay\");\nvar _airplayDefault = parcelHelpers.interopDefault(_airplay);\nvar _utils = require(\"../utils\");\nclass Control extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n art.on('mousemove', ()=>{\n if (!(0, _utils.isMobile)) this.show = true;\n });\n art.on('click', ()=>{\n if (0, _utils.isMobile) this.toggle();\n else this.show = true;\n });\n art.on('document:mousemove', (event)=>{\n this.isHover = (0, _utils.includeFromEvent)(event, $bottom);\n });\n art.on('video:timeupdate', ()=>{\n if (!art.setting.show && !this.isHover && !art.isInput && art.playing && this.show && Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME) this.show = false;\n });\n art.on('control', (state)=>{\n if (state) {\n (0, _utils.removeClass)($player, 'art-hide-cursor');\n (0, _utils.addClass)($player, 'art-hover');\n this.timer = Date.now();\n } else {\n (0, _utils.addClass)($player, 'art-hide-cursor');\n (0, _utils.removeClass)($player, 'art-hover');\n }\n });\n this.init();\n }\n init() {\n const { option } = this.art;\n if (!option.isLive) this.add((0, _progressDefault.default)({\n name: 'progress',\n position: 'top',\n index: 10\n }));\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20\n });\n this.add((0, _playAndPauseDefault.default)({\n name: 'playAndPause',\n position: 'left',\n index: 10\n }));\n this.add((0, _volumeDefault.default)({\n name: 'volume',\n position: 'left',\n index: 20\n }));\n if (!option.isLive) this.add((0, _timeDefault.default)({\n name: 'time',\n position: 'left',\n index: 30\n }));\n if (option.quality.length) (0, _utils.sleep)().then(()=>{\n this.art.quality = option.quality;\n });\n if (option.screenshot && !(0, _utils.isMobile)) this.add((0, _screenshotDefault.default)({\n name: 'screenshot',\n position: 'right',\n index: 20\n }));\n if (option.setting) this.add((0, _settingDefault.default)({\n name: 'setting',\n position: 'right',\n index: 30\n }));\n if (option.pip) this.add((0, _pipDefault.default)({\n name: 'pip',\n position: 'right',\n index: 40\n }));\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) this.add((0, _airplayDefault.default)({\n name: 'airplay',\n position: 'right',\n index: 50\n }));\n if (option.fullscreenWeb) this.add((0, _fullscreenWebDefault.default)({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60\n }));\n if (option.fullscreen) this.add((0, _fullscreenDefault.default)({\n name: 'fullscreen',\n position: 'right',\n index: 70\n }));\n for(let index = 0; index < option.controls.length; index++)this.add(option.controls[index]);\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\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 (0, _utils.errorHandle)(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n super.add(option);\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) (0, _utils.inverseClass)(item.$control_item, 'art-current');\n }\n }\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n (0, _utils.addClass)($ref, 'art-control-selector');\n const $value = (0, _utils.createElement)('div');\n (0, _utils.addClass)($value, 'art-selector-value');\n (0, _utils.append)($value, option.html);\n $ref.innerText = '';\n (0, _utils.append)($ref, $value);\n const $list = (0, _utils.createElement)('div');\n (0, _utils.addClass)($list, 'art-selector-list');\n (0, _utils.append)($ref, $list);\n for(let index = 0; index < option.selector.length; index++){\n const item = option.selector[index];\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-selector-item');\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n (0, _utils.append)($list, $item);\n (0, _utils.def)(item, '$control_option', {\n get: ()=>option.selector\n });\n (0, _utils.def)(item, '$control_item', {\n get: ()=>$item\n });\n (0, _utils.def)(item, '$control_value', {\n get: ()=>$value\n });\n }\n const event = proxy($list, 'click', async (event)=>{\n const path = event.composedPath() || [];\n const item = option.selector.find((item)=>item.$control_item === path.find(($item)=>item.$control_item === $item));\n this.check(item);\n if (option.onSelect) $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n });\n events.push(event);\n }\n}\nexports.default = Control;\n\n},{\"../utils/component\":\"euCTd\",\"./fullscreen\":\"9LKex\",\"./fullscreenWeb\":\"htT34\",\"./pip\":\"7zSba\",\"./playAndPause\":\"kGz8j\",\"./progress\":\"7zX2b\",\"./time\":\"eUF3T\",\"./volume\":\"5Jp6A\",\"./setting\":\"aPd5g\",\"./screenshot\":\"cEkSl\",\"./airplay\":\"iUshw\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"euCTd\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nvar _error = require(\"./error\");\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"../scheme\");\nclass 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 get show() {\n return (0, _dom.hasClass)(this.art.template.$player, `art-${this.name}-show`);\n }\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) (0, _dom.addClass)($player, className);\n else (0, _dom.removeClass)($player, className);\n this.art.emit(this.name, value);\n }\n toggle() {\n this.show = !this.show;\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n (0, _optionValidatorDefault.default)(option, (0, _scheme.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 (0, _error.errorHandle)(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n this.id += 1;\n const $ref = (0, _dom.createElement)('div');\n (0, _dom.addClass)($ref, `art-${this.name}`);\n (0, _dom.addClass)($ref, `art-${this.name}-${name}`);\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) nextChild.insertAdjacentElement('beforebegin', $ref);\n else (0, _dom.append)(this.$parent, $ref);\n if (option.html) (0, _dom.append)($ref, option.html);\n if (option.style) (0, _dom.setStyles)($ref, option.style);\n if (option.tooltip) (0, _dom.tooltip)($ref, option.tooltip);\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 if (option.selector && [\n 'left',\n 'right'\n ].includes(option.position)) this.selector(option, $ref, events);\n this[name] = $ref;\n this.cache.set(name, {\n $ref,\n events,\n option\n });\n if (option.mounted) option.mounted.call(this.art, $ref);\n return $ref;\n }\n remove(name) {\n const item = this.cache.get(name);\n (0, _error.errorHandle)(item, `Can't find [${name}] from the [${this.name}]`);\n if (item.option.beforeUnmount) item.option.beforeUnmount.call(this.art, item.$ref);\n for(let index = 0; index < item.events.length; index++)this.art.events.remove(item.events[index]);\n this.cache.delete(name);\n delete this[name];\n (0, _dom.remove)(item.$ref);\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}\nexports.default = Component;\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"option-validator\":\"glVMO\",\"../scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LKex\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreen);\nvar _utils = require(\"../utils\");\nfunction fullscreen(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenOn = (0, _utils.append)($control, icons.fullscreenOn);\n const $fullscreenOff = (0, _utils.append)($control, icons.fullscreenOff);\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreen = !art.fullscreen;\n });\n art.on('fullscreen', (state)=>{\n if (state) {\n (0, _utils.tooltip)($control, i18n.get('Exit Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"htT34\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWeb);\nvar _utils = require(\"../utils\");\nfunction fullscreenWeb(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenWebOn = (0, _utils.append)($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = (0, _utils.append)($control, icons.fullscreenWebOff);\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n art.on('fullscreenWeb', (value)=>{\n if (value) {\n (0, _utils.tooltip)($control, i18n.get('Exit Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zSba\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pip);\nvar _utils = require(\"../utils\");\nfunction pip(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.pip);\n proxy($control, 'click', ()=>{\n art.pip = !art.pip;\n });\n art.on('pip', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kGz8j\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playAndPause);\nvar _utils = require(\"../utils\");\nfunction playAndPause(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $play = (0, _utils.append)($control, icons.play);\n const $pause = (0, _utils.append)($control, icons.pause);\n (0, _utils.tooltip)($play, i18n.get('Play'));\n (0, _utils.tooltip)($pause, i18n.get('Pause'));\n proxy($play, 'click', ()=>{\n art.play();\n });\n proxy($pause, 'click', ()=>{\n art.pause();\n });\n function showPlay() {\n (0, _utils.setStyle)($play, 'display', 'flex');\n (0, _utils.setStyle)($pause, 'display', 'none');\n }\n function showPause() {\n (0, _utils.setStyle)($play, 'display', 'none');\n (0, _utils.setStyle)($pause, 'display', 'flex');\n }\n if (art.playing) showPause();\n else showPlay();\n art.on('video:playing', ()=>{\n showPause();\n });\n art.on('video:pause', ()=>{\n showPlay();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zX2b\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getPosFromEvent\", ()=>getPosFromEvent);\nparcelHelpers.export(exports, \"setCurrentTime\", ()=>setCurrentTime);\nparcelHelpers.export(exports, \"default\", ()=>progress);\nvar _utils = require(\"../utils\");\nfunction getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = (0, _utils.getRect)($progress);\n const eventLeft = (0, _utils.isMobile) ? event.touches[0].clientX : event.clientX;\n const width = (0, _utils.clamp)(eventLeft - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * art.duration;\n const time = (0, _utils.secondToTime)(second);\n const percentage = (0, _utils.clamp)(width / $progress.clientWidth, 0, 1);\n return {\n second,\n time,\n width,\n percentage\n };\n}\nfunction 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}\nfunction progress(options) {\n return (art)=>{\n const { icons, option, proxy } = art;\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 const $hover = (0, _utils.query)('.art-progress-hover', $control);\n const $loaded = (0, _utils.query)('.art-progress-loaded', $control);\n const $played = (0, _utils.query)('.art-progress-played', $control);\n const $highlight = (0, _utils.query)('.art-progress-highlight', $control);\n const $indicator = (0, _utils.query)('.art-progress-indicator', $control);\n const $tip = (0, _utils.query)('.art-progress-tip', $control);\n if (icons.indicator) (0, _utils.append)($indicator, icons.indicator);\n else (0, _utils.setStyle)($indicator, 'backgroundColor', 'var(--art-theme)');\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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 = (0, _utils.clamp)(item.time, 0, art.duration) / art.duration * 100;\n const html = ``;\n (0, _utils.append)($highlight, html);\n }\n }\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'loaded') (0, _utils.setStyle)($loaded, 'width', `${percentage * 100}%`);\n if (type === 'hover') (0, _utils.setStyle)($hover, 'width', `${percentage * 100}%`);\n if (type === 'played') {\n (0, _utils.setStyle)($played, 'width', `${percentage * 100}%`);\n (0, _utils.setStyle)($indicator, 'left', `${percentage * 100}%`);\n }\n if (isMobileDragging) {\n (0, _utils.setStyle)($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = (0, _utils.secondToTime)(percentage * art.duration);\n showTime(event, {\n width,\n time\n });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(()=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n }, 500);\n }\n }\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n if (art.constructor.USE_RAF) 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 art.on('video:progress', ()=>{\n art.emit('setBar', 'loaded', art.loaded);\n });\n art.on('video:ended', ()=>{\n art.emit('setBar', 'played', 1);\n });\n }\n art.emit('setBar', 'loaded', art.loaded || 0);\n if (!(0, _utils.isMobile)) {\n proxy($control, 'click', (event)=>{\n if (event.target !== $indicator) setCurrentTime(art, event);\n });\n proxy($control, 'mousemove', (event)=>{\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n (0, _utils.setStyle)($tip, 'display', 'flex');\n if ((0, _utils.includeFromEvent)(event, $highlight)) showHighlight(event);\n else showTime(event);\n });\n proxy($control, 'mouseleave', (event)=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n proxy($control, 'mousedown', (event)=>{\n isDragging = event.button === 0;\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 art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eUF3T\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>time);\nvar _utils = require(\"../utils\");\nfunction time(option) {\n return (art)=>({\n ...option,\n style: (0, _utils.isMobile) ? {\n fontSize: '12px',\n padding: '0 5px'\n } : {\n cursor: 'auto',\n padding: '0 10px'\n },\n mounted: ($control)=>{\n function getTime() {\n const newTime = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n if (newTime !== $control.innerText) $control.innerText = newTime;\n }\n getTime();\n const events = [\n 'video:loadedmetadata',\n 'video:timeupdate',\n 'video:progress'\n ];\n for(let index = 0; index < events.length; index++)art.on(events[index], getTime);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Jp6A\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volume);\nvar _utils = require(\"../utils\");\nfunction volume(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons } = art;\n const $volume = (0, _utils.append)($control, icons.volume);\n const $close = (0, _utils.append)($control, icons.volumeClose);\n const $panel = (0, _utils.append)($control, '
');\n const $inner = (0, _utils.append)($panel, '
');\n const $value = (0, _utils.append)($inner, `
`);\n const $slider = (0, _utils.append)($inner, `
`);\n const $handle = (0, _utils.append)($slider, `
`);\n const $loaded = (0, _utils.append)($handle, `
`);\n const $indicator = (0, _utils.append)($slider, `
`);\n function getVolumeFromEvent(event) {\n const { top, height } = (0, _utils.getRect)($slider);\n return 1 - (event.clientY - top) / height;\n }\n function update() {\n if (art.muted || art.volume === 0) {\n (0, _utils.setStyle)($volume, 'display', 'none');\n (0, _utils.setStyle)($close, 'display', 'flex');\n (0, _utils.setStyle)($indicator, 'top', '100%');\n (0, _utils.setStyle)($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n (0, _utils.setStyle)($volume, 'display', 'flex');\n (0, _utils.setStyle)($close, 'display', 'none');\n (0, _utils.setStyle)($indicator, 'top', `${100 - percentage}%`);\n (0, _utils.setStyle)($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n update();\n art.on('video:volumechange', update);\n proxy($volume, 'click', ()=>{\n art.muted = true;\n });\n proxy($close, 'click', ()=>{\n art.muted = false;\n });\n if (0, _utils.isMobile) (0, _utils.setStyle)($panel, 'display', 'none');\n else {\n let isDragging = false;\n proxy($slider, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aPd5g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>setting);\nvar _utils = require(\"../utils\");\nfunction setting(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.setting);\n proxy($control, 'click', ()=>{\n art.setting.toggle();\n art.setting.resize();\n });\n art.on('setting', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cEkSl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshot);\nvar _utils = require(\"../utils\");\nfunction screenshot(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.screenshot);\n proxy($control, 'click', ()=>{\n art.screenshot();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iUshw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplay);\nvar _utils = require(\"../utils\");\nfunction airplay(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.airplay);\n proxy($control, 'click', ()=>art.airplay());\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5YYHx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _version = require(\"./version\");\nvar _versionDefault = parcelHelpers.interopDefault(_version);\nvar _close = require(\"./close\");\nvar _closeDefault = parcelHelpers.interopDefault(_close);\nclass Contextmenu extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { option, proxy, template: { $player, $contextmenu } } = this.art;\n if (option.playbackRate) this.add((0, _playbackRateDefault.default)({\n name: 'playbackRate',\n index: 10\n }));\n if (option.aspectRatio) this.add((0, _aspectRatioDefault.default)({\n name: 'aspectRatio',\n index: 20\n }));\n if (option.flip) this.add((0, _flipDefault.default)({\n name: 'flip',\n index: 30\n }));\n this.add((0, _infoDefault.default)({\n name: 'info',\n index: 40\n }));\n this.add((0, _versionDefault.default)({\n name: 'version',\n index: 50\n }));\n this.add((0, _closeDefault.default)({\n name: 'close',\n index: 60\n }));\n for(let index = 0; index < option.contextmenu.length; index++)this.add(option.contextmenu[index]);\n proxy($player, 'contextmenu', (event)=>{\n if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n this.show = true;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = (0, _utils.getRect)($player);\n const { height: mHeight, width: mWidth } = (0, _utils.getRect)($contextmenu);\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n if (mouseX + mWidth > cLeft + cWidth) menuLeft = cWidth - mWidth;\n if (mouseY + mHeight > cTop + cHeight) menuTop = cHeight - mHeight;\n (0, _utils.setStyles)($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`\n });\n });\n proxy($player, 'click', (event)=>{\n if (!(0, _utils.includeFromEvent)(event, $contextmenu)) this.show = false;\n });\n this.art.on('blur', ()=>{\n this.show = false;\n });\n }\n}\nexports.default = Contextmenu;\n\n},{\"../utils\":\"2zmtQ\",\"../utils/component\":\"euCTd\",\"./playbackRate\":\"lWYo9\",\"./aspectRatio\":\"5d6ZO\",\"./flip\":\"1GWlZ\",\"./info\":\"c5pls\",\"./version\":\"lD1aU\",\"./close\":\"4jD3d\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lWYo9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nvar _utils = require(\"../utils\");\nfunction playbackRate(option) {\n return (art)=>{\n const { i18n, constructor: { PLAYBACK_RATE } } = art;\n const html = PLAYBACK_RATE.map((item)=>`${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`).join('');\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 = (0, _utils.query)('[data-value=\"1\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('video:ratechange', ()=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>Number(item.dataset.value) === art.playbackRate);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5d6ZO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nvar _utils = require(\"../utils\");\nfunction aspectRatio(option) {\n return (art)=>{\n const { i18n, constructor: { ASPECT_RATIO } } = art;\n const html = ASPECT_RATIO.map((item)=>`${item === 'default' ? i18n.get('Default') : item}`).join('');\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 = (0, _utils.query)('[data-value=\"default\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('aspectRatio', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1GWlZ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(option) {\n return (art)=>{\n const { i18n, constructor: { FLIP } } = art;\n const html = FLIP.map((item)=>`${i18n.get((0, _utils.capitalize)(item))}`).join('');\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 = (0, _utils.query)('[data-value=\"normal\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('flip', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"c5pls\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>info);\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lD1aU\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>function(option) {\n return {\n ...option,\n html: `ArtPlayer ${0, _packageJson.version}`\n };\n });\nvar _packageJson = require(\"../../package.json\");\n\n},{\"../../package.json\":\"3QATz\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4jD3d\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>close);\nfunction close(option) {\n return (art)=>({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu)=>{\n contextmenu.show = false;\n }\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"j6kB4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Info extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'info';\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor, template: { $infoPanel, $infoClose, $video } } = this.art;\n proxy($infoClose, 'click', ()=>{\n this.show = false;\n });\n let timer = null;\n const $types = (0, _utils.queryAll)('[data-video]', $infoPanel) || [];\n this.art.on('destroy', ()=>clearTimeout(timer));\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) item.innerText = innerText;\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n loop();\n }\n}\nexports.default = Info;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ldqPL\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nclass Subtitle extends (0, _componentDefault.default) {\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 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 get url() {\n return this.art.template.$track.src;\n }\n set url(url) {\n this.switch(url);\n }\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0];\n }\n get activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\n }\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') return (0, _utils.setStyles)($subtitle, key);\n return (0, _utils.setStyle)($subtitle, key, value);\n }\n update() {\n const { option: { subtitle }, template: { $subtitle } } = this.art;\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues.map((cue, index)=>cue.text.split(/\\r?\\n/).filter((line)=>line.trim()).map((line)=>`
\n ${subtitle.escape ? (0, _utils.escape)(line) : line}\n
`).join('')).join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\n }\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = {\n ...option.subtitle,\n ...newOption,\n url\n };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n return subUrl;\n }\n createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n const $newTrack = (0, _utils.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 this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n (0, _utils.remove)($track);\n (0, _utils.append)($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', ()=>this.update());\n }\n async init(subtitleOption) {\n const { notice, template: { $subtitle } } = this.art;\n if (!this.textTrack) return null;\n (0, _optionValidatorDefault.default)(subtitleOption, (0, _schemeDefault.default).subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n return fetch(subtitleOption.url).then((response)=>response.arrayBuffer()).then((buffer)=>{\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch(subtitleOption.type || (0, _utils.getExt)(subtitleOption.url)){\n case 'srt':\n {\n const vtt = (0, _utils.srtToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'ass':\n {\n const vtt = (0, _utils.assToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'vtt':\n {\n const vttNew = subtitleOption.onVttLoad(text);\n return (0, _utils.vttToBlob)(vttNew);\n }\n default:\n return subtitleOption.url;\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 }).catch((err)=>{\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\nexports.default = Subtitle;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"option-validator\":\"glVMO\",\"./scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5jGH8\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _clickInit = require(\"./clickInit\");\nvar _clickInitDefault = parcelHelpers.interopDefault(_clickInit);\nvar _hoverInit = require(\"./hoverInit\");\nvar _hoverInitDefault = parcelHelpers.interopDefault(_hoverInit);\nvar _moveInit = require(\"./moveInit\");\nvar _moveInitDefault = parcelHelpers.interopDefault(_moveInit);\nvar _resizeInit = require(\"./resizeInit\");\nvar _resizeInitDefault = parcelHelpers.interopDefault(_resizeInit);\nvar _gestureInit = require(\"./gestureInit\");\nvar _gestureInitDefault = parcelHelpers.interopDefault(_gestureInit);\nvar _viewInit = require(\"./viewInit\");\nvar _viewInitDefault = parcelHelpers.interopDefault(_viewInit);\nvar _documentInit = require(\"./documentInit\");\nvar _documentInitDefault = parcelHelpers.interopDefault(_documentInit);\nvar _updateInit = require(\"./updateInit\");\nvar _updateInitDefault = parcelHelpers.interopDefault(_updateInit);\nvar _restoreInit = require(\"./restoreInit\");\nvar _restoreInitDefault = parcelHelpers.interopDefault(_restoreInit);\nclass Events {\n constructor(art){\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n (0, _clickInitDefault.default)(art, this);\n (0, _hoverInitDefault.default)(art, this);\n (0, _moveInitDefault.default)(art, this);\n (0, _resizeInitDefault.default)(art, this);\n (0, _gestureInitDefault.default)(art, this);\n (0, _viewInitDefault.default)(art, this);\n (0, _documentInitDefault.default)(art, this);\n (0, _updateInitDefault.default)(art, this);\n (0, _restoreInitDefault.default)(art, this);\n }\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) return name.map((item)=>this.proxy(target, item, callback, option));\n target.addEventListener(name, callback, option);\n const destroy = ()=>target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) this.proxy(target, 'mouseenter', mouseenter);\n if (mouseleave) this.proxy(target, 'mouseleave', mouseleave);\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 destroy() {\n for(let index = 0; index < this.destroyEvents.length; index++)this.destroyEvents[index]();\n }\n}\nexports.default = Events;\n\n},{\"./clickInit\":\"5AH6F\",\"./hoverInit\":\"egLHg\",\"./moveInit\":\"iGcl4\",\"./resizeInit\":\"1DNHs\",\"./gestureInit\":\"efKpC\",\"./viewInit\":\"fNuBy\",\"./documentInit\":\"kHtUy\",\"./updateInit\":\"8cq8y\",\"./restoreInit\":\"3XeLA\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5AH6F\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>clickInit);\nvar _utils = require(\"../utils\");\nfunction clickInit(art, events) {\n const { constructor, template: { $player, $video } } = art;\n events.proxy(document, [\n 'click',\n 'contextmenu'\n ], (event)=>{\n if ((0, _utils.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 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 const clicks = clickTimes.filter((t)=>now - t <= DBCLICK_TIME);\n switch(clicks.length){\n case 1:\n art.emit('click', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) art.toggle();\n } else art.toggle();\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) art.toggle();\n } else if (DBCLICK_FULLSCREEN) art.fullscreen = !art.fullscreen;\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"egLHg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>hoverInit);\nvar _utils = require(\"../utils\");\nfunction hoverInit(art, events) {\n const { $player } = art.template;\n events.hover($player, (event)=>{\n (0, _utils.addClass)($player, 'art-hover');\n art.emit('hover', true, event);\n }, (event)=>{\n (0, _utils.removeClass)($player, 'art-hover');\n art.emit('hover', false, event);\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iGcl4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>moveInit);\nfunction moveInit(art, events) {\n const { $player } = art.template;\n events.proxy($player, 'mousemove', (event)=>{\n art.emit('mousemove', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1DNHs\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>resizeInit);\nvar _utils = require(\"../utils\");\nfunction resizeInit(art, events) {\n const { option, constructor } = art;\n art.on('resize', ()=>{\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) art.autoSize();\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n const resizeFn = (0, _utils.debounce)(()=>art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, [\n 'orientationchange',\n 'resize'\n ], ()=>resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, 'change', ()=>resizeFn());\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"efKpC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>gestureInit);\nvar _utils = require(\"../utils\");\nvar _progress = require(\"../control/progress\");\nfunction GetSlideAngle(dx, dy) {\n return Math.atan2(dy, dx) * 180 / Math.PI;\n}\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) return result;\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) result = 4;\n else if (angle >= 45 && angle < 135) result = 1;\n else if (angle >= -135 && angle < -45) result = 2;\n else if (angle >= 135 && angle <= 180 || angle >= -180 && angle < -135) result = 3;\n return result;\n}\nfunction gestureInit(art, events) {\n if ((0, _utils.isMobile) && !art.option.isLive) {\n const { $video, $progress } = art.template;\n let touchTarget = null;\n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n const onTouchStart = (event)=>{\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) (0, _progress.setCurrentTime)(art, event);\n isDragging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\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 = [\n 3,\n 4\n ].includes(direction);\n const isVertical = [\n 1,\n 2\n ].includes(direction);\n const isLegal = isHorizontal && !art.isRotate || isVertical && art.isRotate;\n if (isLegal) {\n const ratioX = (0, _utils.clamp)((pageX - startX) / art.width, -1, 1);\n const ratioY = (0, _utils.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 = (0, _utils.clamp)(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', (0, _utils.clamp)(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${(0, _utils.secondToTime)(currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\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 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 events.proxy($progress, 'touchstart', (event)=>{\n touchTarget = $progress;\n onTouchStart(event);\n });\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n\n},{\"../utils\":\"2zmtQ\",\"../control/progress\":\"7zX2b\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fNuBy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>viewInit);\nvar _utils = require(\"../utils\");\nfunction viewInit(art, events) {\n const { option, constructor, template: { $container } } = art;\n const scrollFn = (0, _utils.throttle)(()=>{\n art.emit('view', (0, _utils.isInViewport)($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n events.proxy(window, 'scroll', ()=>scrollFn());\n art.on('view', (state)=>{\n if (option.autoMini) art.mini = !state;\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kHtUy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>documentInit);\nfunction documentInit(art, events) {\n events.proxy(document, 'mousemove', (event)=>{\n art.emit('document:mousemove', event);\n });\n events.proxy(document, 'mouseup', (event)=>{\n art.emit('document:mouseup', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8cq8y\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>updateInit);\nfunction updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n (function update() {\n if (art.playing) art.emit('raf');\n if (!art.isDestroy) timer = requestAnimationFrame(update);\n })();\n art.on('destroy', ()=>{\n cancelAnimationFrame(timer);\n });\n }\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3XeLA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>restoreInit);\nfunction restoreInit(art, events) {\n//\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8a1Mr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Hotkey {\n constructor(art){\n this.art = art;\n this.keys = {};\n if (art.option.hotkey && !(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor } = this.art;\n this.add('Escape', ()=>{\n if (this.art.fullscreenWeb) this.art.fullscreenWeb = false;\n });\n this.add('Space', ()=>{\n this.art.toggle();\n });\n this.add('ArrowLeft', ()=>{\n this.art.backward = constructor.SEEK_STEP;\n });\n this.add('ArrowUp', ()=>{\n this.art.volume += constructor.VOLUME_STEP;\n });\n this.add('ArrowRight', ()=>{\n this.art.forward = constructor.SEEK_STEP;\n });\n this.add('ArrowDown', ()=>{\n this.art.volume -= constructor.VOLUME_STEP;\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 (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true' && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {\n const events = this.keys[event.code];\n if (events) {\n event.preventDefault();\n for(let index = 0; index < events.length; index++)events[index].call(this.art, event);\n this.art.emit('hotkey', event);\n }\n }\n }\n this.art.emit('keydown', event);\n });\n }\n add(key, event) {\n if (this.keys[key]) this.keys[key].push(event);\n else this.keys[key] = [\n event\n ];\n return this;\n }\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) this.keys[key].splice(index, 1);\n }\n return this;\n }\n}\nexports.default = Hotkey;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3WCuK\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Layer extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, template: { $layer } } = art;\n this.name = 'layer';\n this.$parent = $layer;\n for(let index = 0; index < option.layers.length; index++)this.add(option.layers[index]);\n }\n}\nexports.default = Layer;\n\n},{\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"inwRV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Loading extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'loading';\n (0, _utils.append)(art.template.$loading, art.icons.loading);\n }\n}\nexports.default = Loading;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iAojr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Notice {\n constructor(art){\n this.art = art;\n this.timer = null;\n }\n set show(msg) {\n const { constructor, template: { $player, $noticeInner } } = this.art;\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n (0, _utils.addClass)($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n $noticeInner.innerText = '';\n (0, _utils.removeClass)($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else (0, _utils.removeClass)($player, 'art-notice-show');\n }\n}\nexports.default = Notice;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4ZuYu\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Mask extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'mask';\n const { template, icons, events } = art;\n const $state = (0, _utils.append)(template.$state, icons.state);\n const $error = (0, _utils.append)(template.$state, icons.error);\n (0, _utils.setStyle)($error, 'display', 'none');\n art.on('destroy', ()=>{\n (0, _utils.setStyle)($state, 'display', 'none');\n (0, _utils.setStyle)($error, 'display', null);\n });\n events.proxy(template.$state, 'click', ()=>art.play());\n }\n}\nexports.default = Mask;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aEpTt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _loadingSvg = require(\"bundle-text:./loading.svg\");\nvar _loadingSvgDefault = parcelHelpers.interopDefault(_loadingSvg);\nvar _stateSvg = require(\"bundle-text:./state.svg\");\nvar _stateSvgDefault = parcelHelpers.interopDefault(_stateSvg);\nvar _checkSvg = require(\"bundle-text:./check.svg\");\nvar _checkSvgDefault = parcelHelpers.interopDefault(_checkSvg);\nvar _playSvg = require(\"bundle-text:./play.svg\");\nvar _playSvgDefault = parcelHelpers.interopDefault(_playSvg);\nvar _pauseSvg = require(\"bundle-text:./pause.svg\");\nvar _pauseSvgDefault = parcelHelpers.interopDefault(_pauseSvg);\nvar _volumeSvg = require(\"bundle-text:./volume.svg\");\nvar _volumeSvgDefault = parcelHelpers.interopDefault(_volumeSvg);\nvar _volumeCloseSvg = require(\"bundle-text:./volume-close.svg\");\nvar _volumeCloseSvgDefault = parcelHelpers.interopDefault(_volumeCloseSvg);\nvar _screenshotSvg = require(\"bundle-text:./screenshot.svg\");\nvar _screenshotSvgDefault = parcelHelpers.interopDefault(_screenshotSvg);\nvar _settingSvg = require(\"bundle-text:./setting.svg\");\nvar _settingSvgDefault = parcelHelpers.interopDefault(_settingSvg);\nvar _arrowLeftSvg = require(\"bundle-text:./arrow-left.svg\");\nvar _arrowLeftSvgDefault = parcelHelpers.interopDefault(_arrowLeftSvg);\nvar _arrowRightSvg = require(\"bundle-text:./arrow-right.svg\");\nvar _arrowRightSvgDefault = parcelHelpers.interopDefault(_arrowRightSvg);\nvar _playbackRateSvg = require(\"bundle-text:./playback-rate.svg\");\nvar _playbackRateSvgDefault = parcelHelpers.interopDefault(_playbackRateSvg);\nvar _aspectRatioSvg = require(\"bundle-text:./aspect-ratio.svg\");\nvar _aspectRatioSvgDefault = parcelHelpers.interopDefault(_aspectRatioSvg);\nvar _configSvg = require(\"bundle-text:./config.svg\");\nvar _configSvgDefault = parcelHelpers.interopDefault(_configSvg);\nvar _pipSvg = require(\"bundle-text:./pip.svg\");\nvar _pipSvgDefault = parcelHelpers.interopDefault(_pipSvg);\nvar _lockSvg = require(\"bundle-text:./lock.svg\");\nvar _lockSvgDefault = parcelHelpers.interopDefault(_lockSvg);\nvar _unlockSvg = require(\"bundle-text:./unlock.svg\");\nvar _unlockSvgDefault = parcelHelpers.interopDefault(_unlockSvg);\nvar _fullscreenOffSvg = require(\"bundle-text:./fullscreen-off.svg\");\nvar _fullscreenOffSvgDefault = parcelHelpers.interopDefault(_fullscreenOffSvg);\nvar _fullscreenOnSvg = require(\"bundle-text:./fullscreen-on.svg\");\nvar _fullscreenOnSvgDefault = parcelHelpers.interopDefault(_fullscreenOnSvg);\nvar _fullscreenWebOffSvg = require(\"bundle-text:./fullscreen-web-off.svg\");\nvar _fullscreenWebOffSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOffSvg);\nvar _fullscreenWebOnSvg = require(\"bundle-text:./fullscreen-web-on.svg\");\nvar _fullscreenWebOnSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOnSvg);\nvar _switchOnSvg = require(\"bundle-text:./switch-on.svg\");\nvar _switchOnSvgDefault = parcelHelpers.interopDefault(_switchOnSvg);\nvar _switchOffSvg = require(\"bundle-text:./switch-off.svg\");\nvar _switchOffSvgDefault = parcelHelpers.interopDefault(_switchOffSvg);\nvar _flipSvg = require(\"bundle-text:./flip.svg\");\nvar _flipSvgDefault = parcelHelpers.interopDefault(_flipSvg);\nvar _errorSvg = require(\"bundle-text:./error.svg\");\nvar _errorSvgDefault = parcelHelpers.interopDefault(_errorSvg);\nvar _closeSvg = require(\"bundle-text:./close.svg\");\nvar _closeSvgDefault = parcelHelpers.interopDefault(_closeSvg);\nvar _airplaySvg = require(\"bundle-text:./airplay.svg\");\nvar _airplaySvgDefault = parcelHelpers.interopDefault(_airplaySvg);\nclass Icons {\n constructor(art){\n const icons = {\n loading: (0, _loadingSvgDefault.default),\n state: (0, _stateSvgDefault.default),\n play: (0, _playSvgDefault.default),\n pause: (0, _pauseSvgDefault.default),\n check: (0, _checkSvgDefault.default),\n volume: (0, _volumeSvgDefault.default),\n volumeClose: (0, _volumeCloseSvgDefault.default),\n screenshot: (0, _screenshotSvgDefault.default),\n setting: (0, _settingSvgDefault.default),\n pip: (0, _pipSvgDefault.default),\n arrowLeft: (0, _arrowLeftSvgDefault.default),\n arrowRight: (0, _arrowRightSvgDefault.default),\n playbackRate: (0, _playbackRateSvgDefault.default),\n aspectRatio: (0, _aspectRatioSvgDefault.default),\n config: (0, _configSvgDefault.default),\n lock: (0, _lockSvgDefault.default),\n flip: (0, _flipSvgDefault.default),\n unlock: (0, _unlockSvgDefault.default),\n fullscreenOff: (0, _fullscreenOffSvgDefault.default),\n fullscreenOn: (0, _fullscreenOnSvgDefault.default),\n fullscreenWebOff: (0, _fullscreenWebOffSvgDefault.default),\n fullscreenWebOn: (0, _fullscreenWebOnSvgDefault.default),\n switchOn: (0, _switchOnSvgDefault.default),\n switchOff: (0, _switchOffSvgDefault.default),\n error: (0, _errorSvgDefault.default),\n close: (0, _closeSvgDefault.default),\n airplay: (0, _airplaySvgDefault.default),\n ...art.option.icons\n };\n for(const key in icons)(0, _utils.def)(this, key, {\n get: ()=>(0, _utils.getIcon)(key, icons[key])\n });\n }\n}\nexports.default = Icons;\n\n},{\"../utils\":\"2zmtQ\",\"bundle-text:./loading.svg\":\"hvcIK\",\"bundle-text:./state.svg\":\"lvrOo\",\"bundle-text:./check.svg\":\"dEWuy\",\"bundle-text:./play.svg\":\"bIRRL\",\"bundle-text:./pause.svg\":\"8qmIt\",\"bundle-text:./volume.svg\":\"d1KXb\",\"bundle-text:./volume-close.svg\":\"6M8TS\",\"bundle-text:./screenshot.svg\":\"1GD8Z\",\"bundle-text:./setting.svg\":\"jmLr7\",\"bundle-text:./arrow-left.svg\":\"8ACXK\",\"bundle-text:./arrow-right.svg\":\"eUczZ\",\"bundle-text:./playback-rate.svg\":\"cYmA3\",\"bundle-text:./aspect-ratio.svg\":\"8l32s\",\"bundle-text:./config.svg\":\"8Erz8\",\"bundle-text:./pip.svg\":\"gx5TO\",\"bundle-text:./lock.svg\":\"7IJRz\",\"bundle-text:./unlock.svg\":\"dBJfA\",\"bundle-text:./fullscreen-off.svg\":\"84gJT\",\"bundle-text:./fullscreen-on.svg\":\"eGYQU\",\"bundle-text:./fullscreen-web-off.svg\":\"aGs9s\",\"bundle-text:./fullscreen-web-on.svg\":\"1r85n\",\"bundle-text:./switch-on.svg\":\"fNd7D\",\"bundle-text:./switch-off.svg\":\"eCzDs\",\"bundle-text:./flip.svg\":\"84k5P\",\"bundle-text:./error.svg\":\"lMJEW\",\"bundle-text:./close.svg\":\"4Kq91\",\"bundle-text:./airplay.svg\":\"a7OND\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hvcIK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lvrOo\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dEWuy\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"bIRRL\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8qmIt\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"d1KXb\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"6M8TS\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1GD8Z\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"jmLr7\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8ACXK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eUczZ\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"cYmA3\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8l32s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8Erz8\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"gx5TO\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"7IJRz\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dBJfA\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84gJT\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eGYQU\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"aGs9s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1r85n\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"fNd7D\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eCzDs\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84k5P\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lMJEW\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"4Kq91\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"a7OND\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"9Bz5C\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _subtitleOffset = require(\"./subtitleOffset\");\nvar _subtitleOffsetDefault = parcelHelpers.interopDefault(_subtitleOffset);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _utils = require(\"../utils\");\nclass Setting extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, controls, template: { $setting } } = art;\n this.name = 'setting';\n this.$parent = $setting;\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [\n ...this.builtin,\n ...option.settings\n ];\n if (option.setting) {\n this.format();\n this.render();\n art.on('blur', ()=>{\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n art.on('focus', (event)=>{\n const isControl = (0, _utils.includeFromEvent)(event, controls.setting);\n const isSetting = (0, _utils.includeFromEvent)(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n art.on('resize', ()=>this.resize());\n }\n }\n get builtin() {\n const result = [];\n const { option } = this.art;\n if (option.playbackRate) result.push((0, _playbackRateDefault.default)(this.art));\n if (option.aspectRatio) result.push((0, _aspectRatioDefault.default)(this.art));\n if (option.flip) result.push((0, _flipDefault.default)(this.art));\n if (option.subtitleOffset) result.push((0, _subtitleOffsetDefault.default)(this.art));\n return result;\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) this.traverse.call(this, callback, item.selector);\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) (0, _utils.inverseClass)(item.$item, 'art-current');\n }, target.$option);\n this.render(target.$parents);\n }\n format(option = this.option, parent, parents, names = []) {\n for(let index = 0; index < option.length; index++){\n const item = option[index];\n if (item?.name) {\n (0, _utils.errorHandle)(!names.includes(item.name), `The [${item.name}] already exists in [setting]`);\n names.push(item.name);\n } else item.name = `setting-${this.id++}`;\n if (!item.$formatted) {\n (0, _utils.def)(item, '$parent', {\n get: ()=>parent\n });\n (0, _utils.def)(item, '$parents', {\n get: ()=>parents\n });\n (0, _utils.def)(item, '$option', {\n get: ()=>option\n });\n const $events = [];\n (0, _utils.def)(item, '$events', {\n get: ()=>$events\n });\n (0, _utils.def)(item, '$formatted', {\n get: ()=>true\n });\n }\n this.format(item.selector || [], item, option, names);\n }\n this.option = option;\n }\n find(name = '') {\n let result = null;\n this.traverse((item)=>{\n if (item.name === name) result = item;\n });\n return result;\n }\n resize() {\n const { controls, constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT }, template: { $player, $setting } } = this.art;\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = (0, _utils.getRect)(controls.setting);\n const { left: playerLeft, width: playerWidth } = (0, _utils.getRect)($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n const settingHeight = this.active === this.option ? this.active.length * SETTING_ITEM_HEIGHT : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n (0, _utils.setStyle)($setting, 'height', `${settingHeight}px`);\n (0, _utils.setStyle)($setting, 'width', `${settingWidth}px`);\n if (this.art.isRotate || (0, _utils.isMobile)) return;\n if (settingLeft + settingWidth > playerWidth) {\n (0, _utils.setStyle)($setting, 'left', null);\n (0, _utils.setStyle)($setting, 'right', null);\n } else {\n (0, _utils.setStyle)($setting, 'left', `${settingLeft}px`);\n (0, _utils.setStyle)($setting, 'right', 'auto');\n }\n }\n }\n inactivate(item) {\n for(let index = 0; index < item.$events.length; index++)this.art.events.remove(item.$events[index]);\n item.$events.length = 0;\n }\n remove(name) {\n const item = this.find(name);\n (0, _utils.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) (0, _utils.remove)(item.$item);\n this.render();\n }\n update(target) {\n const item = this.find(target.name);\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 return this.add(target);\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 createHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const { proxy, icons: { arrowLeft }, constructor: { SETTING_ITEM_HEIGHT } } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.setStyle)($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.addClass)($item, 'art-setting-item-back');\n const $left = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n (0, _utils.append)($icon, arrowLeft);\n (0, _utils.append)($left, $icon);\n (0, _utils.append)($left, item.$parent.html);\n const event = proxy($item, 'click', ()=>this.render(item.$parents));\n item.$parent.$events.push(event);\n (0, _utils.append)($panel, $item);\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 let type = 'selector';\n if ((0, _utils.has)(item, 'switch')) type = 'switch';\n if ((0, _utils.has)(item, 'range')) type = 'range';\n if ((0, _utils.has)(item, 'onClick')) type = 'button';\n const { icons, proxy, constructor } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.setStyle)($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n const $left = (0, _utils.append)($item, '
');\n const $right = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n switch(type){\n case 'button':\n case 'switch':\n case 'range':\n (0, _utils.append)($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) (0, _utils.append)($icon, item.icon || icons.config);\n else (0, _utils.append)($icon, icons.check);\n break;\n default:\n break;\n }\n (0, _utils.append)($left, $icon);\n (0, _utils.def)(item, '$icon', {\n configurable: true,\n get: ()=>$icon\n });\n (0, _utils.def)(item, 'icon', {\n configurable: true,\n get () {\n return $icon.innerHTML;\n },\n set (value) {\n $icon.innerHTML = '';\n (0, _utils.append)($icon, value);\n }\n });\n const $html = (0, _utils.createElement)('div');\n (0, _utils.addClass)($html, 'art-setting-item-left-text');\n (0, _utils.append)($html, item.html || '');\n (0, _utils.append)($left, $html);\n (0, _utils.def)(item, '$html', {\n configurable: true,\n get: ()=>$html\n });\n (0, _utils.def)(item, 'html', {\n configurable: true,\n get () {\n return $html.innerHTML;\n },\n set (value) {\n $html.innerHTML = '';\n (0, _utils.append)($html, value);\n }\n });\n const $tooltip = (0, _utils.createElement)('div');\n (0, _utils.addClass)($tooltip, 'art-setting-item-right-tooltip');\n (0, _utils.append)($tooltip, item.tooltip || '');\n (0, _utils.append)($right, $tooltip);\n (0, _utils.def)(item, '$tooltip', {\n configurable: true,\n get: ()=>$tooltip\n });\n (0, _utils.def)(item, 'tooltip', {\n configurable: true,\n get () {\n return $tooltip.innerHTML;\n },\n set (value) {\n $tooltip.innerHTML = '';\n (0, _utils.append)($tooltip, value);\n }\n });\n switch(type){\n case 'switch':\n {\n const $switch = (0, _utils.createElement)('div');\n (0, _utils.addClass)($switch, 'art-setting-item-right-icon');\n const $switchOn = (0, _utils.append)($switch, icons.switchOn);\n const $switchOff = (0, _utils.append)($switch, icons.switchOff);\n (0, _utils.setStyle)(item.switch ? $switchOff : $switchOn, 'display', 'none');\n (0, _utils.append)($right, $switch);\n (0, _utils.def)(item, '$switch', {\n configurable: true,\n get: ()=>$switch\n });\n let $switchValue = item.switch;\n (0, _utils.def)(item, 'switch', {\n configurable: true,\n get: ()=>$switchValue,\n set (value) {\n $switchValue = value;\n if (value) {\n (0, _utils.setStyle)($switchOff, 'display', 'none');\n (0, _utils.setStyle)($switchOn, 'display', null);\n } else {\n (0, _utils.setStyle)($switchOff, 'display', null);\n (0, _utils.setStyle)($switchOn, 'display', 'none');\n }\n }\n });\n break;\n }\n case 'range':\n {\n const $state = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n const $range = (0, _utils.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 (0, _utils.addClass)($range, 'art-setting-range');\n (0, _utils.append)($right, $state);\n (0, _utils.def)(item, '$range', {\n configurable: true,\n get: ()=>$range\n });\n let $rangeValue = [\n ...item.range\n ];\n (0, _utils.def)(item, 'range', {\n configurable: true,\n get: ()=>$rangeValue,\n set (value) {\n $rangeValue = [\n ...value\n ];\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 = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n (0, _utils.append)($state, icons.arrowRight);\n (0, _utils.append)($right, $state);\n }\n break;\n default:\n break;\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 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 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 case 'selector':\n {\n const event = proxy($item, 'click', async (event)=>{\n if (item.selector?.length) this.render(item.selector);\n else {\n this.check(item);\n if (item.$parent.onSelect) item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n });\n item.$events.push(event);\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n }\n break;\n case 'button':\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 break;\n default:\n break;\n }\n (0, _utils.def)(item, '$item', {\n configurable: true,\n get: ()=>$item\n });\n if (isUpdate) (0, _utils.replaceElement)($item, oldItem);\n else (0, _utils.append)($panel, $item);\n if (item.mounted) setTimeout(()=>item.mounted.call(this.art, item.$item, item), 0);\n }\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n (0, _utils.inverseClass)($panel, 'art-current');\n } else {\n const $panel = (0, _utils.createElement)('div');\n this.cache.set(option, $panel);\n (0, _utils.addClass)($panel, 'art-setting-panel');\n (0, _utils.append)(this.$parent, $panel);\n (0, _utils.inverseClass)($panel, 'art-current');\n if (option[0]?.$parent) this.createHeader(option[0]);\n for(let index = 0; index < option.length; index++)this.createItem(option[index]);\n }\n this.resize();\n }\n}\nexports.default = Setting;\n\n},{\"./flip\":\"8Xlqq\",\"./aspectRatio\":\"g0rEm\",\"./playbackRate\":\"p1PC0\",\"./subtitleOffset\":\"3ybiM\",\"../utils/component\":\"euCTd\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8Xlqq\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, FLIP } } = art;\n function getI18n(value) {\n return i18n.get((0, _utils.capitalize)(value));\n }\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"g0rEm\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nfunction aspectRatio(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO } } = art;\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"p1PC0\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nfunction playbackRate(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE } } = art;\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3ybiM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffset);\nfunction subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\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: [\n 0,\n -10,\n 10,\n 0.1\n ],\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ly2Yz\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Storage {\n constructor(){\n this.name = 'artplayer_settings';\n this.settings = {};\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 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 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 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}\nexports.default = Storage;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"enDIw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _miniProgressBar = require(\"./miniProgressBar\");\nvar _miniProgressBarDefault = parcelHelpers.interopDefault(_miniProgressBar);\nvar _autoOrientation = require(\"./autoOrientation\");\nvar _autoOrientationDefault = parcelHelpers.interopDefault(_autoOrientation);\nvar _autoPlayback = require(\"./autoPlayback\");\nvar _autoPlaybackDefault = parcelHelpers.interopDefault(_autoPlayback);\nvar _fastForward = require(\"./fastForward\");\nvar _fastForwardDefault = parcelHelpers.interopDefault(_fastForward);\nvar _lock = require(\"./lock\");\nvar _lockDefault = parcelHelpers.interopDefault(_lock);\nclass Plugins {\n constructor(art){\n this.art = art;\n this.id = 0;\n const { option } = art;\n if (option.miniProgressBar && !option.isLive) this.add((0, _miniProgressBarDefault.default));\n if (option.lock && (0, _utils.isMobile)) this.add((0, _lockDefault.default));\n if (option.autoPlayback && !option.isLive) this.add((0, _autoPlaybackDefault.default));\n if (option.autoOrientation && (0, _utils.isMobile)) this.add((0, _autoOrientationDefault.default));\n if (option.fastForward && (0, _utils.isMobile) && !option.isLive) this.add((0, _fastForwardDefault.default));\n for(let index = 0; index < option.plugins.length; index++)this.add(option.plugins[index]);\n }\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n if (result instanceof Promise) return result.then((res)=>this.next(plugin, res));\n else return this.next(plugin, result);\n }\n next(plugin, result) {\n const pluginName = result && result.name || plugin.name || `plugin${this.id}`;\n (0, _utils.errorHandle)(!(0, _utils.has)(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n (0, _utils.def)(this, pluginName, {\n value: result\n });\n return this;\n }\n}\nexports.default = Plugins;\n\n},{\"../utils\":\"2zmtQ\",\"./miniProgressBar\":\"dtvsV\",\"./autoOrientation\":\"aMOBX\",\"./autoPlayback\":\"kqk6e\",\"./fastForward\":\"Rwbar\",\"./lock\":\"cmd59\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dtvsV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniProgressBar);\nvar _utils = require(\"../utils\");\nfunction miniProgressBar(art) {\n art.on('control', (state)=>{\n if (state) (0, _utils.removeClass)(art.template.$player, 'art-mini-progress-bar');\n else (0, _utils.addClass)(art.template.$player, 'art-mini-progress-bar');\n });\n return {\n name: 'mini-progress-bar'\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aMOBX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoOrientation);\nvar _utils = require(\"../utils\");\nfunction autoOrientation(art) {\n const { constructor, template: { $player, $video } } = art;\n art.on('fullscreenWeb', (state)=>{\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(()=>{\n (0, _utils.setStyle)($player, 'width', `${viewHeight}px`);\n (0, _utils.setStyle)($player, 'height', `${viewWidth}px`);\n (0, _utils.setStyle)($player, 'transform-origin', '0 0');\n (0, _utils.setStyle)($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n (0, _utils.addClass)($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation')) {\n (0, _utils.removeClass)($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n });\n art.on('fullscreen', async (state)=>{\n if (!screen?.orientation?.lock) return;\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n (0, _utils.addClass)($player, 'art-auto-orientation-fullscreen');\n }\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n (0, _utils.removeClass)($player, 'art-auto-orientation-fullscreen');\n }\n });\n return {\n name: 'autoOrientation',\n get state () {\n return (0, _utils.hasClass)($player, 'art-auto-orientation');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kqk6e\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoPlayback);\nvar _utils = require(\"../utils\");\nfunction autoPlayback(art) {\n const { i18n, icons, storage, constructor, proxy, template: { $poster } } = art;\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `\n });\n const $last = (0, _utils.query)('.art-auto-playback-last', $autoPlayback);\n const $jump = (0, _utils.query)('.art-auto-playback-jump', $autoPlayback);\n const $close = (0, _utils.query)('.art-auto-playback-close', $autoPlayback);\n (0, _utils.append)($close, icons.close);\n let timer = null;\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) delete times[keys[0]];\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n clearTimeout(timer);\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n (0, _utils.setStyle)($autoPlayback, 'display', 'flex');\n $last.innerText = `${i18n.get('Last Seen')} ${(0, _utils.secondToTime)(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n proxy($close, 'click', ()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n proxy($jump, 'click', ()=>{\n art.seek = currentTime;\n art.play();\n (0, _utils.setStyle)($poster, 'display', 'none');\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n art.once('video:timeupdate', ()=>{\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n art.on('ready', init);\n art.on('restart', init);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"Rwbar\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fastForward);\nvar _utils = require(\"../utils\");\nfunction fastForward(art) {\n const { constructor, proxy, template: { $player, $video } } = art;\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n const onStart = (event)=>{\n if (event.touches.length === 1 && art.playing && !art.isLock) timer = setTimeout(()=>{\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n (0, _utils.addClass)($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n };\n const onStop = ()=>{\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n (0, _utils.removeClass)($player, 'art-fast-forward');\n }\n };\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n return {\n name: 'fastForward',\n get state () {\n return (0, _utils.hasClass)($player, 'art-fast-forward');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cmd59\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>lock);\nvar _utils = require(\"../utils\");\nfunction lock(art) {\n const { layers, icons, template: { $player } } = art;\n function getState() {\n return (0, _utils.hasClass)($player, 'art-lock');\n }\n function setLock() {\n (0, _utils.addClass)($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n function setUnlock() {\n (0, _utils.removeClass)($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\n layers.add({\n name: 'lock',\n mounted ($el) {\n const $lock = (0, _utils.append)($el, icons.lock);\n const $unlock = (0, _utils.append)($el, icons.unlock);\n (0, _utils.setStyle)($lock, 'display', 'none');\n art.on('lock', (state)=>{\n if (state) {\n (0, _utils.setStyle)($lock, 'display', 'inline-flex');\n (0, _utils.setStyle)($unlock, 'display', 'none');\n } else {\n (0, _utils.setStyle)($lock, 'display', 'none');\n (0, _utils.setStyle)($unlock, 'display', 'inline-flex');\n }\n });\n },\n click () {\n if (getState()) setUnlock();\n else setLock();\n }\n });\n return {\n name: 'lock',\n get state () {\n return getState();\n },\n set state (value){\n if (value) setLock();\n else setUnlock();\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}]},[\"4omrA\"], \"4omrA\", \"parcelRequireb749\", {})\nlet {default: _default, } = parcelRequireb749(\"4omrA\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import { version } from '../package.json';\nimport 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 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 version;\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","{\n \"license\": \"MIT\",\n \"name\": \"artplayer\",\n \"version\": \"5.2.4\",\n \"main\": \"dist/artplayer.js\",\n \"legacy\": \"dist/artplayer.legacy.js\",\n \"module\": \"dist/artplayer.esm.js\",\n \"types\": \"types/artplayer.d.ts\",\n \"exports\": {\n \"import\": \"./dist/artplayer.esm.js\",\n \"require\": \"./dist/artplayer.js\",\n \"default\": \"./dist/artplayer.js\"\n },\n \"homepage\": \"https://artplayer.org\",\n \"author\": \"Harvey Zack \",\n \"browserslist\": \"last 1 Chrome version\",\n \"description\": \"ArtPlayer.js is a modern and full featured HTML5 video player\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/zhw2590582/ArtPlayer.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/zhw2590582/ArtPlayer/issues\"\n },\n \"keywords\": [\n \"html5\",\n \"video\",\n \"player\"\n ],\n \"dependencies\": {\n \"option-validator\": \"^2.0.6\"\n }\n}","module.exports = \"3f6ec9ee3af91a27\";","!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 { version } from '../package.json';\nimport { 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
${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 (typeof top === 'number' && typeof left === 'number') {\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","import { version } from '../../package.json';\n\nexport default function (option) {\n return {\n ...option,\n html: `ArtPlayer ${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 = \"79356f8a9eaedcd3\";","module.exports = \"9b8da831195a0296\";","module.exports = \"fefbfac2b4688a15\";","module.exports = \"1c2f0d275a3e6c14\";","module.exports = \"0f0db61f72c3e5d7\";","module.exports = \"8bc480c9256a1b55\";","module.exports = \"02a59ee0095ec3a9\";","module.exports = \"933bfb2aaa61ebcc\";","module.exports = \"d8947f3fc30104b7\";","module.exports = \"6f55837680f4a829\";","module.exports = \"9d31a30750a7cb4b\";","module.exports = \"0000856937620744\";","module.exports = \"ff1d4e50282a344a\";","module.exports = \"9813d2a46ceed07c\";","module.exports = \"b57bb39e41ccb640\";","module.exports = \"7fb917337b416149\";","module.exports = \"b2dac719b3f940e4\";","module.exports = \"789dab71a67d9e3d\";","module.exports = \"50bc39a19ece62a6\";","module.exports = \"4cd5fe480df753c8\";","module.exports = \"5e79755fabb04f07\";","module.exports = \"20b111129b61a679\";","module.exports = \"e24e6a114fe8d011\";","module.exports = \"cdfad49422dff32c\";","module.exports = \"269ca28002b4a2e4\";","module.exports = \"bffe06d8410d947f\";","module.exports = \"a85d72ae7ad1ec63\";","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}] already exists 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":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","_packageJson","_indexLess","_indexLessDefault","interopDefault","_optionValidator","_optionValidatorDefault","_emitter","_emitterDefault","_utils","_scheme","_schemeDefault","_config","_configDefault","_template","_templateDefault","_i18N","_i18NDefault","_player","_playerDefault","_control","_controlDefault","_contextmenu","_contextmenuDefault","_info","_infoDefault","_subtitle","_subtitleDefault","_events","_eventsDefault","_hotkey","_hotkeyDefault","_layer","_layerDefault","_loading","_loadingDefault","_notice","_noticeDefault","_mask","_maskDefault","_icons","_iconsDefault","_setting","_settingDefault","_storage","_storageDefault","_plugins","_pluginsDefault","instances","Artplayer","default","constructor","option","readyCallback","mergeOption","mergeDeep","container","isLock","isReady","isFocus","isInput","isRotate","isDestroy","template","events","storage","icons","i18n","notice","player","layers","controls","contextmenu","subtitle","info","loading","hotkey","mask","setting","plugins","on","DEBUG","log","msg","console","version","index","event","type","push","config","utils","scheme","Emitter","validator","kindOf","html","url","poster","theme","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","playbackRate","aspectRatio","screenshot","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","useSSR","playsInline","lock","gesture","fastForward","autoPlayback","autoOrientation","airplay","proxy","undefined","settings","quality","highlight","thumbnails","number","column","width","height","scale","style","escape","encoding","onVttLoad","vtt","moreVideoAttr","preload","isSafari","cssVar","customType","lang","navigator","language","toLowerCase","query","video","$video","destroy","removeHtml","splice","indexOf","emit","STYLE","CONTEXTMENU","NOTICE_TIME","SETTING_WIDTH","SETTING_ITEM_WIDTH","SETTING_ITEM_HEIGHT","RESIZE_TIME","SCROLL_TIME","SCROLL_GAP","AUTO_PLAYBACK_MAX","AUTO_PLAYBACK_MIN","AUTO_PLAYBACK_TIMEOUT","RECONNECT_TIME_MAX","RECONNECT_SLEEP_TIME","CONTROL_HIDE_TIME","DBCLICK_TIME","DBCLICK_FULLSCREEN","MOBILE_DBCLICK_PLAY","MOBILE_CLICK_PLAY","AUTO_ORIENTATION_TIME","INFO_LOOP_TIME","FAST_FORWARD_VALUE","FAST_FORWARD_TIME","TOUCH_MOVE_RATIO","VOLUME_STEP","SEEK_STEP","PLAYBACK_RATE","ASPECT_RATIO","FLIP","FULLSCREEN_WEB_IN_BODY","LOG_VERSION","USE_RAF","isBrowser","setStyleText","setTimeout","JSON","parse","t","e","r","Symbol","iterator","prototype","n","toString","c","o","Array","isArray","isBuffer","callee","message","Date","toDateString","getDate","setDate","stackTraceLimit","RegExp","flags","ignoreCase","multiline","throw","return","next","slice","replace","f","arguments","s","y","a","u","concat","join","keys","forEach","split","map","trim","filter","Boolean","some","fn","ctx","once","listener","args","off","apply","_","data","evtArr","callback","evts","liveEvents","len","__esModule","value","exportAll","source","dest","key","hasOwnProperty","enumerable","export","destName","_dom","_error","_file","_property","_time","_format","_compatibility","queryAll","addClass","removeClass","hasClass","append","remove","setStyle","setStyles","getStyle","siblings","inverseClass","tooltip","isInViewport","includeFromEvent","replaceElement","createElement","getIcon","supportsFlex","getRect","loadImg","selector","document","querySelector","from","querySelectorAll","target","className","classList","add","contains","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","element","styles","numberType","getComputedStyle","getPropertyValue","parseFloat","parentElement","children","item","pos","isMobile","setAttribute","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","horInView","left","composedPath","newChild","oldChild","replaceChild","tag","icon","$style","getElementById","readyState","addEventListener","head","textContent","div","display","Promise","reject","img","Image","onload","canvas","getContext","drawImage","toBlob","blob","blobUrl","URL","createObjectURL","scaledImg","onerror","revokeObjectURL","src","userAgent","isWechat","isIE","isAndroid","isIOS","isIOS13","CUSTOM_USER_AGENT","test","MSStream","includes","maxTouchPoints","ArtPlayerError","errorHandle","context","captureStackTrace","condition","srtToVtt","srtText","fixSrt","srt","$1","$2","ms","vttToBlob","vttText","Blob","assToVtt","ass","reAss","fixTime","time","arr","line","m","match","start","end","text","download","elink","href","body","click","getExt","pop","def","has","objects","isObject","reduce","prev","obj","pVal","oVal","getOwnPropertyDescriptor","sleep","debounce","func","duration","timeout","clearTimeout","throttle","shouldWait","clamp","num","b","Math","max","min","capitalize","str","charAt","toUpperCase","secondToTime","second","hour","floor","sec","unescape","reg","ComponentOption","validElement","paths","disable","mounted","onSelect","switch","onSwitch","range","onRange","onChange","position","properties","methods","prototypes","Template","art","$container","tagName","every","ins","dataset","artId","init","innerHTML","$player","$track","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsCenter","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$info","$infoPanel","$infoClose","$contextmenu","HTMLVideoElement","HTMLCanvasElement","_zhCn","_zhCnDefault","languages","update","zhCn","Close","Volume","Play","Pause","Rate","Mute","Horizontal","Vertical","Reconnect","Screenshot","Default","Normal","Open","Fullscreen","AirPlay","_urlMix","_urlMixDefault","_attrMix","_attrMixDefault","_playMix","_playMixDefault","_pauseMix","_pauseMixDefault","_toggleMix","_toggleMixDefault","_seekMix","_seekMixDefault","_volumeMix","_volumeMixDefault","_currentTimeMix","_currentTimeMixDefault","_durationMix","_durationMixDefault","_switchMix","_switchMixDefault","_playbackRateMix","_playbackRateMixDefault","_aspectRatioMix","_aspectRatioMixDefault","_screenshotMix","_screenshotMixDefault","_fullscreenMix","_fullscreenMixDefault","_fullscreenWebMix","_fullscreenWebMixDefault","_pipMix","_pipMixDefault","_loadedMix","_loadedMixDefault","_playedMix","_playedMixDefault","_playingMix","_playingMixDefault","_autoSizeMix","_autoSizeMixDefault","_rectMix","_rectMixDefault","_flipMix","_flipMixDefault","_miniMix","_miniMixDefault","_posterMix","_posterMixDefault","_autoHeightMix","_autoHeightMixDefault","_cssVarMix","_cssVarMixDefault","_themeMix","_themeMixDefault","_typeMix","_typeMixDefault","_stateMix","_stateMixDefault","_subtitleOffsetMix","_subtitleOffsetMixDefault","_airplayMix","_airplayMixDefault","_qualityMix","_qualityMixDefault","_thumbnailsMix","_thumbnailsMixDefault","_optionInit","_optionInitDefault","_eventInit","_eventInitDefault","urlMix","set","newUrl","oldUrl","typeName","typeCallback","show","attrMix","playMix","result","play","instance","pause","pauseMix","toggleMix","playing","seekMix","currentTime","seek","volumeMix","percentage","parseInt","currentTimeMix","Number","isNaN","durationMix","Infinity","switchMix","switchUrl","playbackRateMix","rate","aspectRatioMix","ratio","ratioArray","setupRatio","playerRatio","screenshotMix","$canvas","videoWidth","videoHeight","toDataURL","dataUri","getDataURL","fileName","fullscreenMix","_screenfull","_screenfullDefault","nativeScreenfull","isFullscreen","state","request","exit","webkitScreenfull","fullscreenElement","webkitEnterFullscreen","webkitExitFullscreen","isEnabled","webkitSupportsFullscreen","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","options","onFullScreenEntered","returnPromise","requestFullscreen","then","catch","onFullScreenExit","exitFullscreen","toggle","onchange","eventName","removeEventListener","raw","defineProperties","fullscreenEnabled","fullscreenWebMix","cssText","pipMix","pictureInPictureEnabled","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitSupportsPresentationMode","webkitPip","webkitSetPresentationMode","webkitPresentationMode","loadedMix","loadedTime","buffered","playedMix","playingMix","paused","ended","autoSizeMix","videoRatio","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","miniMix","isDragging","lastPageX","lastPageY","hideMini","$mini","prepend","initState","$play","$pause","initMini","createMini","$close","close","button","pageX","pageY","posterMix","autoHeightMix","cssVarMix","setProperty","themeMix","typeMix","stateMix","states","find","prop","subtitleOffsetMix","cues","cue","originalStartTime","startTime","originalEndTime","endTime","airplayMix","available","WebKitPlaybackTargetAvailabilityEvent","webkitShowPlaybackTargetPicker","availability","qualityMix","qualityDefault","marginRight","switchQuality","thumbnailsMix","timer","image","isLoad","isHover","hover","$thumbnails","isMobileDragging","showThumbnails","posWidth","width2","naturalWidth","height2","perIndex","yIndex","ceil","xIndex","optionInit","attr","volumeStorage","eventInit","reconnectTime","_component","_componentDefault","_fullscreen","_fullscreenDefault","_fullscreenWeb","_fullscreenWebDefault","_pip","_pipDefault","_playAndPause","_playAndPauseDefault","_progress","_progressDefault","_timeDefault","_volume","_volumeDefault","_screenshot","_screenshotDefault","_airplay","_airplayDefault","Control","now","getOption","$parent","check","$control_value","$control_option","$control_item","$ref","$value","innerText","$list","$item","path","Map","childs","nextChild","insertAdjacentElement","destroyEvent","preventDefault","beforeUnmount","delete","assign","$control","$fullscreenOn","fullscreenOn","$fullscreenOff","fullscreenOff","$fullscreenWebOn","fullscreenWebOn","$fullscreenWebOff","fullscreenWebOff","playAndPause","showPlay","showPause","getPosFromEvent","setCurrentTime","progress","eventLeft","touches","clientX","clientY","tipTimer","$hover","$loaded","$played","$highlight","$indicator","$tip","showTime","touch","tipWidth","indicator","played","loaded","showHighlight","fontSize","padding","cursor","getTime","newTime","$volume","volumeClose","$panel","$inner","$slider","$handle","getVolumeFromEvent","resize","_playbackRate","_playbackRateDefault","_aspectRatio","_aspectRatioDefault","_flip","_flipDefault","_version","_versionDefault","_close","_closeDefault","Contextmenu","mouseX","mouseY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","toFixed","$default","$current","Info","$types","Subtitle","lastState","webkitDisplayingFullscreen","createTrack","textTrack","textTracks","activeCues","newOption","subtitleOption","subUrl","kind","$newTrack","label","track","mode","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","vttNew","_clickInit","_clickInitDefault","_hoverInit","_hoverInitDefault","_moveInit","_moveInitDefault","_resizeInit","_resizeInitDefault","_gestureInit","_gestureInitDefault","_viewInit","_viewInitDefault","_documentInit","_documentInitDefault","_updateInit","_updateInitDefault","_restoreInit","_restoreInitDefault","destroyEvents","mouseenter","mouseleave","clickInit","clickTimes","clicks","hoverInit","moveInit","resizeInit","resizeFn","screen","orientation","gestureInit","touchTarget","startX","startY","onTouchStart","onTouchMove","direction","GetSlideDirection","endX","endY","dy","dx","abs","angle","atan2","PI","isHorizontal","isVertical","ratioX","ratioY","viewInit","scrollFn","mini","documentInit","updateInit","requestAnimationFrame","cancelAnimationFrame","restoreInit","backward","forward","activeElement","editable","getAttribute","altKey","ctrlKey","metaKey","shiftKey","Layer","Loading","Mask","$error","_loadingSvg","_loadingSvgDefault","_stateSvg","_stateSvgDefault","_checkSvg","_checkSvgDefault","_playSvg","_playSvgDefault","_pauseSvg","_pauseSvgDefault","_volumeSvg","_volumeSvgDefault","_volumeCloseSvg","_volumeCloseSvgDefault","_screenshotSvg","_screenshotSvgDefault","_settingSvg","_settingSvgDefault","_arrowLeftSvg","_arrowLeftSvgDefault","_arrowRightSvg","_arrowRightSvgDefault","_playbackRateSvg","_playbackRateSvgDefault","_aspectRatioSvg","_aspectRatioSvgDefault","_configSvg","_configSvgDefault","_pipSvg","_pipSvgDefault","_lockSvg","_lockSvgDefault","_unlockSvg","_unlockSvgDefault","_fullscreenOffSvg","_fullscreenOffSvgDefault","_fullscreenOnSvg","_fullscreenOnSvgDefault","_fullscreenWebOffSvg","_fullscreenWebOffSvgDefault","_fullscreenWebOnSvg","_fullscreenWebOnSvgDefault","_switchOnSvg","_switchOnSvgDefault","_switchOffSvg","_switchOffSvgDefault","_flipSvg","_flipSvgDefault","_errorSvg","_errorSvgDefault","_closeSvg","_closeSvgDefault","_airplaySvg","_airplaySvgDefault","arrowLeft","arrowRight","unlock","switchOn","switchOff","_subtitleOffset","_subtitleOffsetDefault","Setting","active","builtin","format","render","isControl","isSetting","traverse","$option","$parents","parents","names","$formatted","$events","settingWidth","controlLeft","controlWidth","playerLeft","playerWidth","settingLeft","settingHeight","inactivate","createItem","createHeader","$left","$icon","isUpdate","oldItem","$right","configurable","$html","$tooltip","$switch","$switchOn","$switchOff","$switchValue","$range","step","$rangeValue","valueAsNumber","onClick","getI18n","localStorage","getItem","setItem","stringify","del","clear","removeItem","_miniProgressBar","_miniProgressBarDefault","_autoOrientation","_autoOrientationDefault","_autoPlayback","_autoPlaybackDefault","_fastForward","_fastForwardDefault","_lock","_lockDefault","plugin","pluginName","viewWidth","viewHeight","lastOrientation","oppositeOrientation","startsWith","$autoPlayback","$last","$jump","times","isPress","lastPlaybackRate","onStop","getState","setLock","setUnlock","$el","$lock","$unlock","_default","parcelRequireb749"],"version":3,"file":"index.js.map"} \ No newline at end of file +{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAA,IAAA,EAAA,EAAA,mBACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,WACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,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AAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAC5C,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAElD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAE5B,EAAI,EAAE,CAAC,UAAW,KACd,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,KAChC,GAEA,EAAO,KAAK,CAAC,EAAS,MAAM,CAAE,QAAS,IAAM,EAAI,IAAI,GACzD,CACJ,CAnBqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCHrB,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,iC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,oC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,wC,E,E,c,C,GACA,EAAA,EAAA,uC,E,E,c,C,GACA,EAAA,EAAA,+B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,6B,G,E,c,C,GAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAM,EAAQ,CACV,QAAA,EAAA,OAAM,CACN,MAAA,EAAA,OAAI,CACJ,KAAA,EAAA,OAAG,CACH,MAAA,EAAA,OAAI,CACJ,MAAA,EAAA,OAAI,CACJ,OAAA,EAAA,OAAK,CACL,YAAA,EAAA,OAAU,CACV,WAAA,EAAA,OAAS,CACT,QAAA,EAAA,OAAM,CACN,IAAA,EAAA,OAAE,CACF,UAAA,EAAA,OAAQ,CACR,WAAA,EAAA,OAAS,CACT,aAAA,EAAA,OAAW,CACX,YAAA,EAAA,OAAU,CACV,OAAA,EAAA,OAAK,CACL,KAAA,EAAA,OAAG,CACH,KAAA,EAAA,OAAG,CACH,OAAA,EAAA,OAAK,CACL,cAAA,EAAA,OAAY,CACZ,aAAA,EAAA,OAAW,CACX,iBAAA,EAAA,OAAe,CACf,gBAAA,EAAA,OAAc,CACd,SAAA,EAAA,OAAO,CACP,UAAA,EAAA,OAAQ,CACR,MAAA,GAAA,OAAI,CACJ,MAAA,GAAA,OAAI,CACJ,QAAA,GAAA,OAAM,CACN,GAAG,EAAI,MAAM,CAAC,KAAK,AACvB,EAEA,IAAK,IAAM,KAAO,EACd,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,IAAI,CAAE,EAAK,CACX,IAAK,IAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,CAAK,CAAC,EAAI,CACtC,EAER,CACJ,C,E,C,W,Q,4B,Q,0B,Q,0B,Q,yB,Q,0B,Q,2B,Q,iC,Q,+B,Q,4B,Q,+B,Q,gC,Q,kC,Q,iC,Q,2B,Q,wB,Q,yB,Q,2B,Q,mC,Q,kC,Q,uC,Q,sC,Q,8B,Q,+B,Q,yB,Q,0B,Q,0B,Q,4B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,ECpEA,EAAO,OAAO,CAAG,utF,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,ic,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sK,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,6M,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yL,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kX,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qlB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,wX,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kuB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qa,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,22B,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,2M,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+N,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Z,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Y,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mS,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,4S,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mnB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,onB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kP,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sZ,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,muB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,okB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gjB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yN,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAjB,IAAA,EAAA,EAAA,U,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","sources":["","src/index.js","package.json","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e5b18d0e844e5afa.js","../../node_modules/option-validator/dist/option-validator.js","src/utils/emitter.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/utils/index.js","src/utils/dom.js","src/utils/compatibility.js","src/utils/error.js","src/utils/subtitle.js","src/utils/file.js","src/utils/property.js","src/utils/time.js","src/utils/format.js","src/scheme/index.js","src/config/index.js","src/template.js","src/i18n/index.js","src/i18n/zh-cn.js","src/player/index.js","src/player/urlMix.js","src/player/attrMix.js","src/player/playMix.js","src/player/pauseMix.js","src/player/toggleMix.js","src/player/seekMix.js","src/player/volumeMix.js","src/player/currentTimeMix.js","src/player/durationMix.js","src/player/switchMix.js","src/player/playbackRateMix.js","src/player/aspectRatioMix.js","src/player/screenshotMix.js","src/player/fullscreenMix.js","src/libs/screenfull.js","src/player/fullscreenWebMix.js","src/player/pipMix.js","src/player/loadedMix.js","src/player/playedMix.js","src/player/playingMix.js","src/player/autoSizeMix.js","src/player/rectMix.js","src/player/flipMix.js","src/player/miniMix.js","src/player/posterMix.js","src/player/autoHeightMix.js","src/player/cssVarMix.js","src/player/themeMix.js","src/player/typeMix.js","src/player/stateMix.js","src/player/subtitleOffsetMix.js","src/player/airplayMix.js","src/player/qualityMix.js","src/player/thumbnailsMix.js","src/player/optionInit.js","src/player/eventInit.js","src/control/index.js","src/utils/component.js","src/control/fullscreen.js","src/control/fullscreenWeb.js","src/control/pip.js","src/control/playAndPause.js","src/control/progress.js","src/control/time.js","src/control/volume.js","src/control/setting.js","src/control/screenshot.js","src/control/airplay.js","src/contextmenu/index.js","src/contextmenu/playbackRate.js","src/contextmenu/aspectRatio.js","src/contextmenu/flip.js","src/contextmenu/info.js","src/contextmenu/version.js","src/contextmenu/close.js","src/info.js","src/subtitle.js","src/events/index.js","src/events/clickInit.js","src/events/hoverInit.js","src/events/moveInit.js","src/events/resizeInit.js","src/events/gestureInit.js","src/events/viewInit.js","src/events/documentInit.js","src/events/updateInit.js","src/events/restoreInit.js","src/hotkey.js","src/layer.js","src/loading.js","src/notice.js","src/mask.js","src/icons/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-f46ce6fd4d6219c9.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e2699ab1b5d12dec.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-fb4f406243bae249.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e7f49ef0a750e46e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-355a67f597addcce.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b511c19de45d7b5a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a8c37daa693ed128.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6e583e791161db23.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5d29c1646a3f2a46.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-378fbb72a82e8e48.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e8cd5a1ef68bb59f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-ffbc0f66c3a6fc5c.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5686118494f842bb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-9f0950781f43006b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d259a056e372040b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-04028cd054423deb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-eafe778ff83fb2ea.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a4473dfbbe0190b0.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-73212e2644fd43cb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6f4de877081a61c3.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-886a1de38693838a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-dc18eeb39fcd983d.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-059301d9482d34d2.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d9590f5b369d2f07.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-7a1cdac95b207001.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e53925a959c8f5c7.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b336b1c2248901.js","src/setting/index.js","src/setting/flip.js","src/setting/aspectRatio.js","src/setting/playbackRate.js","src/setting/subtitleOffset.js","src/storage.js","src/plugins/index.js","src/plugins/miniProgressBar.js","src/plugins/autoOrientation.js","src/plugins/autoPlayback.js","src/plugins/fastForward.js","src/plugins/lock.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"4omrA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _indexLess = require(\"bundle-text:./style/index.less\");\nvar _indexLessDefault = parcelHelpers.interopDefault(_indexLess);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _emitter = require(\"./utils/emitter\");\nvar _emitterDefault = parcelHelpers.interopDefault(_emitter);\nvar _utils = require(\"./utils\");\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nvar _config = require(\"./config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _template = require(\"./template\");\nvar _templateDefault = parcelHelpers.interopDefault(_template);\nvar _i18N = require(\"./i18n\");\nvar _i18NDefault = parcelHelpers.interopDefault(_i18N);\nvar _player = require(\"./player\");\nvar _playerDefault = parcelHelpers.interopDefault(_player);\nvar _control = require(\"./control\");\nvar _controlDefault = parcelHelpers.interopDefault(_control);\nvar _contextmenu = require(\"./contextmenu\");\nvar _contextmenuDefault = parcelHelpers.interopDefault(_contextmenu);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _subtitle = require(\"./subtitle\");\nvar _subtitleDefault = parcelHelpers.interopDefault(_subtitle);\nvar _events = require(\"./events\");\nvar _eventsDefault = parcelHelpers.interopDefault(_events);\nvar _hotkey = require(\"./hotkey\");\nvar _hotkeyDefault = parcelHelpers.interopDefault(_hotkey);\nvar _layer = require(\"./layer\");\nvar _layerDefault = parcelHelpers.interopDefault(_layer);\nvar _loading = require(\"./loading\");\nvar _loadingDefault = parcelHelpers.interopDefault(_loading);\nvar _notice = require(\"./notice\");\nvar _noticeDefault = parcelHelpers.interopDefault(_notice);\nvar _mask = require(\"./mask\");\nvar _maskDefault = parcelHelpers.interopDefault(_mask);\nvar _icons = require(\"./icons\");\nvar _iconsDefault = parcelHelpers.interopDefault(_icons);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _storage = require(\"./storage\");\nvar _storageDefault = parcelHelpers.interopDefault(_storage);\nvar _plugins = require(\"./plugins\");\nvar _pluginsDefault = parcelHelpers.interopDefault(_plugins);\nlet id = 0;\nconst instances = [];\nclass Artplayer extends (0, _emitterDefault.default) {\n constructor(option, readyCallback){\n super();\n this.id = ++id;\n const mergeOption = _utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n this.option = (0, _optionValidatorDefault.default)(mergeOption, (0, _schemeDefault.default));\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 this.template = new (0, _templateDefault.default)(this);\n this.events = new (0, _eventsDefault.default)(this);\n this.storage = new (0, _storageDefault.default)(this);\n this.icons = new (0, _iconsDefault.default)(this);\n this.i18n = new (0, _i18NDefault.default)(this);\n this.notice = new (0, _noticeDefault.default)(this);\n this.player = new (0, _playerDefault.default)(this);\n this.layers = new (0, _layerDefault.default)(this);\n this.controls = new (0, _controlDefault.default)(this);\n this.contextmenu = new (0, _contextmenuDefault.default)(this);\n this.subtitle = new (0, _subtitleDefault.default)(this);\n this.info = new (0, _infoDefault.default)(this);\n this.loading = new (0, _loadingDefault.default)(this);\n this.hotkey = new (0, _hotkeyDefault.default)(this);\n this.mask = new (0, _maskDefault.default)(this);\n this.setting = new (0, _settingDefault.default)(this);\n this.plugins = new (0, _pluginsDefault.default)(this);\n if (typeof readyCallback === 'function') this.on('ready', ()=>readyCallback.call(this, this));\n if (Artplayer.DEBUG) {\n const log = (msg)=>console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)this.on('video:' + (0, _configDefault.default).events[index], (event)=>log('Event@' + event.type));\n }\n instances.push(this);\n }\n static get instances() {\n return instances;\n }\n static get version() {\n return 0, _packageJson.version;\n }\n static get config() {\n return 0, _configDefault.default;\n }\n static get utils() {\n return _utils;\n }\n static get scheme() {\n return 0, _schemeDefault.default;\n }\n static get Emitter() {\n return 0, _emitterDefault.default;\n }\n static get validator() {\n return 0, _optionValidatorDefault.default;\n }\n static get kindOf() {\n return (0, _optionValidatorDefault.default).kindOf;\n }\n static get html() {\n return (0, _templateDefault.default).html;\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 get proxy() {\n return this.events.proxy;\n }\n get query() {\n return this.template.query;\n }\n get video() {\n return this.template.$video;\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}\nexports.default = Artplayer;\nArtplayer.STYLE = (0, _indexLessDefault.default);\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 = [\n 0.5,\n 0.75,\n 1,\n 1.25,\n 1.5,\n 2\n];\nArtplayer.ASPECT_RATIO = [\n 'default',\n '4:3',\n '16:9'\n];\nArtplayer.FLIP = [\n 'normal',\n 'horizontal',\n 'vertical'\n];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\nif (_utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n _utils.setStyleText('artplayer-style', (0, _indexLessDefault.default));\n setTimeout(()=>{\n if (Artplayer.LOG_VERSION) console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', '');\n }, 100);\n}\n\n},{\"../package.json\":\"3QATz\",\"bundle-text:./style/index.less\":\"7b65e\",\"option-validator\":\"glVMO\",\"./utils/emitter\":\"evjIj\",\"./utils\":\"2zmtQ\",\"./scheme\":\"lGoF1\",\"./config\":\"auZaO\",\"./template\":\"1uh6E\",\"./i18n\":\"3udCS\",\"./player\":\"9mB1U\",\"./control\":\"3aoXC\",\"./contextmenu\":\"5YYHx\",\"./info\":\"j6kB4\",\"./subtitle\":\"ldqPL\",\"./events\":\"5jGH8\",\"./hotkey\":\"8a1Mr\",\"./layer\":\"3WCuK\",\"./loading\":\"inwRV\",\"./notice\":\"iAojr\",\"./mask\":\"4ZuYu\",\"./icons\":\"aEpTt\",\"./setting\":\"9Bz5C\",\"./storage\":\"ly2Yz\",\"./plugins\":\"enDIw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3QATz\":[function(require,module,exports,__globalThis) {\nmodule.exports = JSON.parse(\"{\\\"license\\\":\\\"MIT\\\",\\\"name\\\":\\\"artplayer\\\",\\\"version\\\":\\\"5.2.5\\\",\\\"main\\\":\\\"dist/artplayer.js\\\",\\\"legacy\\\":\\\"dist/artplayer.legacy.js\\\",\\\"types\\\":\\\"types/artplayer.d.ts\\\",\\\"homepage\\\":\\\"https://artplayer.org\\\",\\\"author\\\":\\\"Harvey Zack \\\",\\\"browserslist\\\":\\\"last 1 Chrome version\\\",\\\"description\\\":\\\"ArtPlayer.js is a modern and full featured HTML5 video player\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/zhw2590582/ArtPlayer.git\\\"},\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/zhw2590582/ArtPlayer/issues\\\"},\\\"keywords\\\":[\\\"html5\\\",\\\"video\\\",\\\"player\\\"],\\\"dependencies\\\":{\\\"option-validator\\\":\\\"^2.0.6\\\"}}\");\n\n},{}],\"7b65e\":[function(require,module,exports,__globalThis) {\nmodule.exports = \".art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:\\\"\\\";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=\\\"\\\"]:before,[aria-label=\\\"\\\"]:after,[data-hint=\\\"\\\"]:before,[data-hint=\\\"\\\"]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}\";\n\n},{}],\"glVMO\":[function(require,module,exports,__globalThis) {\n!function(r, t) {\n module.exports = t();\n}(this, function() {\n \"use strict\";\n function e(r) {\n return (e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(r) {\n return typeof r;\n } : function(r) {\n return r && \"function\" == typeof Symbol && r.constructor === Symbol && r !== Symbol.prototype ? \"symbol\" : typeof r;\n })(r);\n }\n var n = Object.prototype.toString, c = function(r) {\n if (void 0 === r) return \"undefined\";\n if (null === r) return \"null\";\n var t = e(r);\n if (\"boolean\" === t) return \"boolean\";\n if (\"string\" === t) return \"string\";\n if (\"number\" === t) return \"number\";\n if (\"symbol\" === t) return \"symbol\";\n if (\"function\" === t) return function(r) {\n return \"GeneratorFunction\" === o(r);\n }(r) ? \"generatorfunction\" : \"function\";\n if (function(r) {\n return Array.isArray ? Array.isArray(r) : r instanceof Array;\n }(r)) return \"array\";\n if (function(r) {\n if (r.constructor && \"function\" == typeof r.constructor.isBuffer) return r.constructor.isBuffer(r);\n return !1;\n }(r)) return \"buffer\";\n if (function(r) {\n try {\n if (\"number\" == typeof r.length && \"function\" == typeof r.callee) return !0;\n } catch (r) {\n if (-1 !== r.message.indexOf(\"callee\")) return !0;\n }\n return !1;\n }(r)) return \"arguments\";\n if (function(r) {\n return r instanceof Date || \"function\" == typeof r.toDateString && \"function\" == typeof r.getDate && \"function\" == typeof r.setDate;\n }(r)) return \"date\";\n if (function(r) {\n return r instanceof Error || \"string\" == typeof r.message && r.constructor && \"number\" == typeof r.constructor.stackTraceLimit;\n }(r)) return \"error\";\n if (function(r) {\n return r instanceof RegExp || \"string\" == typeof r.flags && \"boolean\" == typeof r.ignoreCase && \"boolean\" == typeof r.multiline && \"boolean\" == typeof r.global;\n }(r)) return \"regexp\";\n switch(o(r)){\n case \"Symbol\":\n return \"symbol\";\n case \"Promise\":\n return \"promise\";\n case \"WeakMap\":\n return \"weakmap\";\n case \"WeakSet\":\n return \"weakset\";\n case \"Map\":\n return \"map\";\n case \"Set\":\n return \"set\";\n case \"Int8Array\":\n return \"int8array\";\n case \"Uint8Array\":\n return \"uint8array\";\n case \"Uint8ClampedArray\":\n return \"uint8clampedarray\";\n case \"Int16Array\":\n return \"int16array\";\n case \"Uint16Array\":\n return \"uint16array\";\n case \"Int32Array\":\n return \"int32array\";\n case \"Uint32Array\":\n return \"uint32array\";\n case \"Float32Array\":\n return \"float32array\";\n case \"Float64Array\":\n return \"float64array\";\n }\n if (function(r) {\n return \"function\" == typeof r.throw && \"function\" == typeof r.return && \"function\" == typeof r.next;\n }(r)) return \"generator\";\n switch(t = n.call(r)){\n case \"[object Object]\":\n return \"object\";\n case \"[object Map Iterator]\":\n return \"mapiterator\";\n case \"[object Set Iterator]\":\n return \"setiterator\";\n case \"[object String Iterator]\":\n return \"stringiterator\";\n case \"[object Array Iterator]\":\n return \"arrayiterator\";\n }\n return t.slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n };\n function o(r) {\n return r.constructor ? r.constructor.name : null;\n }\n function f(r, t) {\n var e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [\n \"option\"\n ];\n return s(r, t, e), y(r, t, e), function(a, i, u) {\n var r = c(i), t = c(a);\n if (\"object\" === r) {\n if (\"object\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'object' type, but got '\").concat(t, \"'\"));\n Object.keys(i).forEach(function(r) {\n var t = a[r], e = i[r], n = u.slice();\n n.push(r), s(t, e, n), y(t, e, n), f(t, e, n);\n });\n }\n if (\"array\" === r) {\n if (\"array\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'array' type, but got '\").concat(t, \"'\"));\n a.forEach(function(r, t) {\n var e = a[t], n = i[t] || i[0], o = u.slice();\n o.push(t), s(e, n, o), y(e, n, o), f(e, n, o);\n });\n }\n }(r, t, e), r;\n }\n function s(r, t, e) {\n if (\"string\" === c(t)) {\n var n = c(r);\n if (\"?\" === t[0] && (t = t.slice(1) + \"|undefined\"), !(-1 < t.indexOf(\"|\") ? t.split(\"|\").map(function(r) {\n return r.toLowerCase().trim();\n }).filter(Boolean).some(function(r) {\n return n === r;\n }) : t.toLowerCase().trim() === n)) throw new Error(\"[Type Error]: '\".concat(e.join(\".\"), \"' require '\").concat(t, \"' type, but got '\").concat(n, \"'\"));\n }\n }\n function y(r, t, e) {\n if (\"function\" === c(t)) {\n var n = t(r, c(r), e);\n if (!0 !== n) {\n var o = c(n);\n throw \"string\" === o ? new Error(n) : \"error\" === o ? n : new Error(\"[Validator Error]: The scheme for '\".concat(e.join(\".\"), \"' validator require return true, but got '\").concat(n, \"'\"));\n }\n }\n }\n return f.kindOf = c, f;\n});\n\n},{}],\"evjIj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn,\n ctx\n });\n return this;\n }\n once(name, fn, ctx) {\n const self = this;\n function listener(...args) {\n self.off(name, listener);\n fn.apply(ctx, args);\n }\n listener._ = fn;\n return this.on(name, listener, ctx);\n }\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n for(let i = 0; i < evtArr.length; i += 1)evtArr[i].fn.apply(evtArr[i].ctx, data);\n return this;\n }\n off(name, callback) {\n const e = this.e || (this.e = {});\n const evts = e[name];\n const liveEvents = [];\n if (evts && callback) {\n for(let i = 0, len = evts.length; i < len; i += 1)if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n if (liveEvents.length) e[name] = liveEvents;\n else delete e[name];\n return this;\n }\n}\nexports.default = Emitter;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"w4pLy\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}],\"2zmtQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nparcelHelpers.exportAll(_dom, exports);\nvar _error = require(\"./error\");\nparcelHelpers.exportAll(_error, exports);\nvar _subtitle = require(\"./subtitle\");\nparcelHelpers.exportAll(_subtitle, exports);\nvar _file = require(\"./file\");\nparcelHelpers.exportAll(_file, exports);\nvar _property = require(\"./property\");\nparcelHelpers.exportAll(_property, exports);\nvar _time = require(\"./time\");\nparcelHelpers.exportAll(_time, exports);\nvar _format = require(\"./format\");\nparcelHelpers.exportAll(_format, exports);\nvar _compatibility = require(\"./compatibility\");\nparcelHelpers.exportAll(_compatibility, exports);\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"./subtitle\":\"NXvdl\",\"./file\":\"9RWGQ\",\"./property\":\"bfNe9\",\"./time\":\"afTRg\",\"./format\":\"1I37O\",\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"6a4fx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"query\", ()=>query);\nparcelHelpers.export(exports, \"queryAll\", ()=>queryAll);\nparcelHelpers.export(exports, \"addClass\", ()=>addClass);\nparcelHelpers.export(exports, \"removeClass\", ()=>removeClass);\nparcelHelpers.export(exports, \"hasClass\", ()=>hasClass);\nparcelHelpers.export(exports, \"append\", ()=>append);\nparcelHelpers.export(exports, \"remove\", ()=>remove);\nparcelHelpers.export(exports, \"setStyle\", ()=>setStyle);\nparcelHelpers.export(exports, \"setStyles\", ()=>setStyles);\nparcelHelpers.export(exports, \"getStyle\", ()=>getStyle);\nparcelHelpers.export(exports, \"siblings\", ()=>siblings);\nparcelHelpers.export(exports, \"inverseClass\", ()=>inverseClass);\nparcelHelpers.export(exports, \"tooltip\", ()=>tooltip);\nparcelHelpers.export(exports, \"isInViewport\", ()=>isInViewport);\nparcelHelpers.export(exports, \"includeFromEvent\", ()=>includeFromEvent);\nparcelHelpers.export(exports, \"replaceElement\", ()=>replaceElement);\nparcelHelpers.export(exports, \"createElement\", ()=>createElement);\nparcelHelpers.export(exports, \"getIcon\", ()=>getIcon);\nparcelHelpers.export(exports, \"setStyleText\", ()=>setStyleText);\nparcelHelpers.export(exports, \"supportsFlex\", ()=>supportsFlex);\nparcelHelpers.export(exports, \"getRect\", ()=>getRect);\nparcelHelpers.export(exports, \"loadImg\", ()=>loadImg);\nvar _compatibility = require(\"./compatibility\");\nfunction query(selector, parent = document) {\n return parent.querySelector(selector);\n}\nfunction queryAll(selector, parent = document) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction addClass(target, className) {\n return target.classList.add(className);\n}\nfunction removeClass(target, className) {\n return target.classList.remove(className);\n}\nfunction hasClass(target, className) {\n return target.classList.contains(className);\n}\nfunction append(parent, child) {\n if (child instanceof Element) parent.appendChild(child);\n else parent.insertAdjacentHTML('beforeend', String(child));\n return parent.lastElementChild || parent.lastChild;\n}\nfunction remove(child) {\n return child.parentNode.removeChild(child);\n}\nfunction setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\nfunction setStyles(element, styles) {\n for(const key in styles)setStyle(element, key, styles[key]);\n return element;\n}\nfunction getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\nfunction siblings(target) {\n return Array.from(target.parentElement.children).filter((item)=>item !== target);\n}\nfunction inverseClass(target, className) {\n siblings(target).forEach((item)=>removeClass(item, className));\n addClass(target, className);\n}\nfunction tooltip(target, msg, pos = 'top') {\n if (0, _compatibility.isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\nfunction 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}\nfunction includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\nfunction replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\nfunction createElement(tag) {\n return document.createElement(tag);\n}\nfunction 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}\nfunction 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') document.addEventListener('DOMContentLoaded', ()=>{\n document.head.appendChild($style);\n });\n else (document.head || document.documentElement).appendChild($style);\n }\n $style.textContent = style;\n}\nfunction supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\nfunction getRect(el) {\n return el.getBoundingClientRect();\n}\nfunction loadImg(url, scale) {\n return new Promise((resolve, reject)=>{\n const img = new Image();\n img.onload = function() {\n if (!scale || scale === 1) 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 canvas.toBlob((blob)=>{\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n scaledImg.onload = function() {\n resolve(scaledImg);\n };\n scaledImg.onerror = function() {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n scaledImg.src = blobUrl;\n });\n }\n };\n img.onerror = function() {\n reject(new Error(`Image load failed: ${url}`));\n };\n img.src = url;\n });\n}\n\n},{\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lHM5L\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"userAgent\", ()=>userAgent);\nparcelHelpers.export(exports, \"isSafari\", ()=>isSafari);\nparcelHelpers.export(exports, \"isWechat\", ()=>isWechat);\nparcelHelpers.export(exports, \"isIE\", ()=>isIE);\nparcelHelpers.export(exports, \"isAndroid\", ()=>isAndroid);\nparcelHelpers.export(exports, \"isIOS\", ()=>isIOS);\nparcelHelpers.export(exports, \"isIOS13\", ()=>isIOS13);\nparcelHelpers.export(exports, \"isMobile\", ()=>isMobile);\nparcelHelpers.export(exports, \"isBrowser\", ()=>isBrowser);\nconst userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.userAgent : '');\nconst isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nconst isWechat = /MicroMessenger/i.test(userAgent);\nconst isIE = /MSIE|Trident/i.test(userAgent);\nconst isAndroid = /android/i.test(userAgent);\nconst isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\nconst isIOS13 = isIOS || userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1;\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nconst isBrowser = typeof window !== 'undefined';\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"anKPB\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ArtPlayerError\", ()=>ArtPlayerError);\nparcelHelpers.export(exports, \"errorHandle\", ()=>errorHandle);\nclass ArtPlayerError extends Error {\n constructor(message, context){\n super(message);\n if (typeof Error.captureStackTrace === 'function') Error.captureStackTrace(this, context || this.constructor);\n this.name = 'ArtPlayerError';\n }\n}\nfunction errorHandle(condition, msg) {\n if (!condition) throw new ArtPlayerError(msg);\n return condition;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"NXvdl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"srtToVtt\", ()=>srtToVtt);\nparcelHelpers.export(exports, \"vttToBlob\", ()=>vttToBlob);\nparcelHelpers.export(exports, \"assToVtt\", ()=>assToVtt);\nfunction 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) ms = $2 + '00';\n if ($2.length === 2) ms = $2 + '0';\n return `${$1},${ms}`;\n });\n}\nfunction srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(fixSrt(srtText).replace(/\\{\\\\([ibu])\\}/g, '').replace(/\\{\\\\([ibu])1\\}/g, '<$1>').replace(/\\{([ibu])\\}/g, '<$1>').replace(/\\{\\/([ibu])\\}/g, '').replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2').replace(/{[\\s\\S]*?}/g, '').concat('\\r\\n\\r\\n'));\n}\nfunction vttToBlob(vttText) {\n return URL.createObjectURL(new Blob([\n vttText\n ], {\n type: 'text/vtt'\n }));\n}\nfunction assToVtt(ass) {\n const reAss = new RegExp(\"Dialogue:\\\\s\\\\d,(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\\\s\\\\S]*)$\", 'i');\n function fixTime(time = '') {\n return time.split(/[:.]/).map((item, index, arr)=>{\n if (index === arr.length - 1) {\n if (item.length === 1) return `.${item}00`;\n if (item.length === 2) return `.${item}0`;\n } else if (item.length === 1) return (index === 0 ? '0' : ':0') + item;\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n }).join('');\n }\n return \"WEBVTT\\n\\n\" + ass.split(/\\r?\\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].replace(/{[\\s\\S]*?}/g, '').replace(/(\\\\N)/g, '\\n').trim().split(/\\r?\\n/).map((item)=>item.trim()).join('\\n')\n };\n }).filter((line)=>line).map((line, index)=>{\n if (line) return index + 1 + '\\n' + `${line.start} --> ${line.end}` + '\\n' + `${line.text}`;\n return '';\n }).filter((line)=>line.trim()).join('\\n\\n');\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9RWGQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getExt\", ()=>getExt);\nparcelHelpers.export(exports, \"download\", ()=>download);\nfunction getExt(url) {\n if (url.includes('?')) return getExt(url.split('?')[0]);\n if (url.includes('#')) return getExt(url.split('#')[0]);\n return url.trim().toLowerCase().split('.').pop();\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"bfNe9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"def\", ()=>def);\nparcelHelpers.export(exports, \"has\", ()=>has);\nparcelHelpers.export(exports, \"get\", ()=>get);\nparcelHelpers.export(exports, \"mergeDeep\", ()=>mergeDeep);\nconst def = Object.defineProperty;\nconst { hasOwnProperty } = Object.prototype;\nfunction has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\nfunction get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\nfunction 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)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"afTRg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"sleep\", ()=>sleep);\nparcelHelpers.export(exports, \"debounce\", ()=>debounce);\nparcelHelpers.export(exports, \"throttle\", ()=>throttle);\nfunction sleep(ms = 0) {\n return new Promise((resolve)=>setTimeout(resolve, ms));\n}\nfunction debounce(func, duration) {\n let timeout;\n return function(...args) {\n const effect = ()=>{\n timeout = null;\n return func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\nfunction throttle(func, duration) {\n let shouldWait = false;\n return function(...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n setTimeout(function() {\n shouldWait = false;\n }, duration);\n }\n };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1I37O\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"clamp\", ()=>clamp);\nparcelHelpers.export(exports, \"capitalize\", ()=>capitalize);\nparcelHelpers.export(exports, \"secondToTime\", ()=>secondToTime);\nparcelHelpers.export(exports, \"escape\", ()=>escape);\nparcelHelpers.export(exports, \"unescape\", ()=>unescape);\nfunction clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction 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 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n}\nfunction escape(str) {\n return str.replace(/[&<>'\"]/g, (tag)=>({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"'\n })[tag] || tag);\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lGoF1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ComponentOption\", ()=>ComponentOption);\nvar _utils = require(\"../utils\");\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nfunction validElement(value, type, paths) {\n return (0, _utils.errorHandle)(type === s || type === n || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\nconst 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};\nexports.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: [\n f\n ],\n layers: [\n ComponentOption\n ],\n contextmenu: [\n ComponentOption\n ],\n settings: [\n ComponentOption\n ],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths)=>{\n const position = [\n 'top',\n 'left',\n 'right'\n ];\n return (0, _utils.errorHandle)(position.includes(value), `${paths.join('.')} only accept ${position.toString()} as parameters`);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"auZaO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.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: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen'\n ]\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1uh6E\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _utils = require(\"./utils\");\nclass Template {\n constructor(art){\n this.art = art;\n const { option, constructor } = art;\n if (option.container instanceof Element) this.$container = option.container;\n else {\n this.$container = (0, _utils.query)(option.container);\n (0, _utils.errorHandle)(this.$container, `No container element found by ${option.container}`);\n }\n (0, _utils.errorHandle)((0, _utils.supportsFlex)(), 'The current browser does not support flex layout');\n const type = this.$container.tagName.toLowerCase();\n (0, _utils.errorHandle)(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n (0, _utils.errorHandle)(constructor.instances.every((ins)=>ins.template.$container !== this.$container), 'Cannot mount multiple instances on the same dom element');\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.init();\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
${0, _packageJson.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 query(className) {\n return (0, _utils.query)(className, this.$container);\n }\n init() {\n const { option } = this.art;\n if (!option.useSSR) this.$container.innerHTML = Template.html;\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 if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n (0, _utils.errorHandle)(video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement, `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`);\n (0, _utils.replaceElement)(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n if (option.backdrop) (0, _utils.addClass)(this.$player, 'art-backdrop');\n if (0, _utils.isMobile) (0, _utils.addClass)(this.$player, 'art-mobile');\n }\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) this.$container.innerHTML = '';\n else (0, _utils.addClass)(this.$player, 'art-destroy');\n }\n}\nexports.default = Template;\n\n},{\"../package.json\":\"3QATz\",\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3udCS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _zhCn = require(\"./zh-cn\");\nvar _zhCnDefault = parcelHelpers.interopDefault(_zhCn);\nclass I18n {\n constructor(art){\n this.art = art;\n this.languages = {\n 'zh-cn': (0, _zhCnDefault.default)\n };\n this.language = {};\n this.update(art.option.i18n);\n }\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n get(key) {\n return this.language[key] || key;\n }\n update(value) {\n this.languages = (0, _utils.mergeDeep)(this.languages, value);\n this.init();\n }\n}\nexports.default = I18n;\n\n},{\"../utils\":\"2zmtQ\",\"./zh-cn\":\"3CYMl\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3CYMl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst zhCn = {\n 'Video Info': \"\\u7EDF\\u8BA1\\u4FE1\\u606F\",\n Close: \"\\u5173\\u95ED\",\n 'Video Load Failed': \"\\u52A0\\u8F7D\\u5931\\u8D25\",\n Volume: \"\\u97F3\\u91CF\",\n Play: \"\\u64AD\\u653E\",\n Pause: \"\\u6682\\u505C\",\n Rate: \"\\u901F\\u5EA6\",\n Mute: \"\\u9759\\u97F3\",\n 'Video Flip': \"\\u753B\\u9762\\u7FFB\\u8F6C\",\n Horizontal: \"\\u6C34\\u5E73\",\n Vertical: \"\\u5782\\u76F4\",\n Reconnect: \"\\u91CD\\u65B0\\u8FDE\\u63A5\",\n 'Show Setting': \"\\u663E\\u793A\\u8BBE\\u7F6E\",\n 'Hide Setting': \"\\u9690\\u85CF\\u8BBE\\u7F6E\",\n Screenshot: \"\\u622A\\u56FE\",\n 'Play Speed': \"\\u64AD\\u653E\\u901F\\u5EA6\",\n 'Aspect Ratio': \"\\u753B\\u9762\\u6BD4\\u4F8B\",\n Default: \"\\u9ED8\\u8BA4\",\n Normal: \"\\u6B63\\u5E38\",\n Open: \"\\u6253\\u5F00\",\n 'Switch Video': \"\\u5207\\u6362\",\n 'Switch Subtitle': \"\\u5207\\u6362\\u5B57\\u5E55\",\n Fullscreen: \"\\u5168\\u5C4F\",\n 'Exit Fullscreen': \"\\u9000\\u51FA\\u5168\\u5C4F\",\n 'Web Fullscreen': \"\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Exit Web Fullscreen': \"\\u9000\\u51FA\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Mini Player': \"\\u8FF7\\u4F60\\u64AD\\u653E\\u5668\",\n 'PIP Mode': \"\\u5F00\\u542F\\u753B\\u4E2D\\u753B\",\n 'Exit PIP Mode': \"\\u9000\\u51FA\\u753B\\u4E2D\\u753B\",\n 'PIP Not Supported': \"\\u4E0D\\u652F\\u6301\\u753B\\u4E2D\\u753B\",\n 'Fullscreen Not Supported': \"\\u4E0D\\u652F\\u6301\\u5168\\u5C4F\",\n 'Subtitle Offset': \"\\u5B57\\u5E55\\u504F\\u79FB\",\n 'Last Seen': \"\\u4E0A\\u6B21\\u770B\\u5230\",\n 'Jump Play': \"\\u8DF3\\u8F6C\\u64AD\\u653E\",\n AirPlay: \"\\u9694\\u7A7A\\u64AD\\u653E\",\n 'AirPlay Not Available': \"\\u9694\\u7A7A\\u64AD\\u653E\\u4E0D\\u53EF\\u7528\"\n};\nexports.default = zhCn;\nif (typeof window !== 'undefined') window['artplayer-i18n-zh-cn'] = zhCn;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9mB1U\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _urlMix = require(\"./urlMix\");\nvar _urlMixDefault = parcelHelpers.interopDefault(_urlMix);\nvar _attrMix = require(\"./attrMix\");\nvar _attrMixDefault = parcelHelpers.interopDefault(_attrMix);\nvar _playMix = require(\"./playMix\");\nvar _playMixDefault = parcelHelpers.interopDefault(_playMix);\nvar _pauseMix = require(\"./pauseMix\");\nvar _pauseMixDefault = parcelHelpers.interopDefault(_pauseMix);\nvar _toggleMix = require(\"./toggleMix\");\nvar _toggleMixDefault = parcelHelpers.interopDefault(_toggleMix);\nvar _seekMix = require(\"./seekMix\");\nvar _seekMixDefault = parcelHelpers.interopDefault(_seekMix);\nvar _volumeMix = require(\"./volumeMix\");\nvar _volumeMixDefault = parcelHelpers.interopDefault(_volumeMix);\nvar _currentTimeMix = require(\"./currentTimeMix\");\nvar _currentTimeMixDefault = parcelHelpers.interopDefault(_currentTimeMix);\nvar _durationMix = require(\"./durationMix\");\nvar _durationMixDefault = parcelHelpers.interopDefault(_durationMix);\nvar _switchMix = require(\"./switchMix\");\nvar _switchMixDefault = parcelHelpers.interopDefault(_switchMix);\nvar _playbackRateMix = require(\"./playbackRateMix\");\nvar _playbackRateMixDefault = parcelHelpers.interopDefault(_playbackRateMix);\nvar _aspectRatioMix = require(\"./aspectRatioMix\");\nvar _aspectRatioMixDefault = parcelHelpers.interopDefault(_aspectRatioMix);\nvar _screenshotMix = require(\"./screenshotMix\");\nvar _screenshotMixDefault = parcelHelpers.interopDefault(_screenshotMix);\nvar _fullscreenMix = require(\"./fullscreenMix\");\nvar _fullscreenMixDefault = parcelHelpers.interopDefault(_fullscreenMix);\nvar _fullscreenWebMix = require(\"./fullscreenWebMix\");\nvar _fullscreenWebMixDefault = parcelHelpers.interopDefault(_fullscreenWebMix);\nvar _pipMix = require(\"./pipMix\");\nvar _pipMixDefault = parcelHelpers.interopDefault(_pipMix);\nvar _loadedMix = require(\"./loadedMix\");\nvar _loadedMixDefault = parcelHelpers.interopDefault(_loadedMix);\nvar _playedMix = require(\"./playedMix\");\nvar _playedMixDefault = parcelHelpers.interopDefault(_playedMix);\nvar _playingMix = require(\"./playingMix\");\nvar _playingMixDefault = parcelHelpers.interopDefault(_playingMix);\nvar _autoSizeMix = require(\"./autoSizeMix\");\nvar _autoSizeMixDefault = parcelHelpers.interopDefault(_autoSizeMix);\nvar _rectMix = require(\"./rectMix\");\nvar _rectMixDefault = parcelHelpers.interopDefault(_rectMix);\nvar _flipMix = require(\"./flipMix\");\nvar _flipMixDefault = parcelHelpers.interopDefault(_flipMix);\nvar _miniMix = require(\"./miniMix\");\nvar _miniMixDefault = parcelHelpers.interopDefault(_miniMix);\nvar _posterMix = require(\"./posterMix\");\nvar _posterMixDefault = parcelHelpers.interopDefault(_posterMix);\nvar _autoHeightMix = require(\"./autoHeightMix\");\nvar _autoHeightMixDefault = parcelHelpers.interopDefault(_autoHeightMix);\nvar _cssVarMix = require(\"./cssVarMix\");\nvar _cssVarMixDefault = parcelHelpers.interopDefault(_cssVarMix);\nvar _themeMix = require(\"./themeMix\");\nvar _themeMixDefault = parcelHelpers.interopDefault(_themeMix);\nvar _typeMix = require(\"./typeMix\");\nvar _typeMixDefault = parcelHelpers.interopDefault(_typeMix);\nvar _stateMix = require(\"./stateMix\");\nvar _stateMixDefault = parcelHelpers.interopDefault(_stateMix);\nvar _subtitleOffsetMix = require(\"./subtitleOffsetMix\");\nvar _subtitleOffsetMixDefault = parcelHelpers.interopDefault(_subtitleOffsetMix);\nvar _airplayMix = require(\"./airplayMix\");\nvar _airplayMixDefault = parcelHelpers.interopDefault(_airplayMix);\nvar _qualityMix = require(\"./qualityMix\");\nvar _qualityMixDefault = parcelHelpers.interopDefault(_qualityMix);\nvar _thumbnailsMix = require(\"./thumbnailsMix\");\nvar _thumbnailsMixDefault = parcelHelpers.interopDefault(_thumbnailsMix);\nvar _optionInit = require(\"./optionInit\");\nvar _optionInitDefault = parcelHelpers.interopDefault(_optionInit);\nvar _eventInit = require(\"./eventInit\");\nvar _eventInitDefault = parcelHelpers.interopDefault(_eventInit);\nclass Player {\n constructor(art){\n (0, _urlMixDefault.default)(art);\n (0, _attrMixDefault.default)(art);\n (0, _playMixDefault.default)(art);\n (0, _pauseMixDefault.default)(art);\n (0, _toggleMixDefault.default)(art);\n (0, _seekMixDefault.default)(art);\n (0, _volumeMixDefault.default)(art);\n (0, _currentTimeMixDefault.default)(art);\n (0, _durationMixDefault.default)(art);\n (0, _switchMixDefault.default)(art);\n (0, _playbackRateMixDefault.default)(art);\n (0, _aspectRatioMixDefault.default)(art);\n (0, _screenshotMixDefault.default)(art);\n (0, _fullscreenMixDefault.default)(art);\n (0, _fullscreenWebMixDefault.default)(art);\n (0, _pipMixDefault.default)(art);\n (0, _loadedMixDefault.default)(art);\n (0, _playedMixDefault.default)(art);\n (0, _playingMixDefault.default)(art);\n (0, _autoSizeMixDefault.default)(art);\n (0, _rectMixDefault.default)(art);\n (0, _flipMixDefault.default)(art);\n (0, _miniMixDefault.default)(art);\n (0, _posterMixDefault.default)(art);\n (0, _autoHeightMixDefault.default)(art);\n (0, _cssVarMixDefault.default)(art);\n (0, _themeMixDefault.default)(art);\n (0, _typeMixDefault.default)(art);\n (0, _stateMixDefault.default)(art);\n (0, _subtitleOffsetMixDefault.default)(art);\n (0, _airplayMixDefault.default)(art);\n (0, _qualityMixDefault.default)(art);\n (0, _thumbnailsMixDefault.default)(art);\n (0, _eventInitDefault.default)(art);\n (0, _optionInitDefault.default)(art);\n }\n}\nexports.default = Player;\n\n},{\"./urlMix\":\"gOtyE\",\"./attrMix\":\"53BhY\",\"./playMix\":\"1banF\",\"./pauseMix\":\"3wC1g\",\"./toggleMix\":\"27lNh\",\"./seekMix\":\"h3e53\",\"./volumeMix\":\"7ZLkO\",\"./currentTimeMix\":\"e6oTn\",\"./durationMix\":\"asbQ7\",\"./switchMix\":\"5l7tM\",\"./playbackRateMix\":\"dHiZV\",\"./aspectRatioMix\":\"7TM4D\",\"./screenshotMix\":\"9LouN\",\"./fullscreenMix\":\"dYSsN\",\"./fullscreenWebMix\":\"fF9Os\",\"./pipMix\":\"hDMWY\",\"./loadedMix\":\"7RkX2\",\"./playedMix\":\"jXVGX\",\"./playingMix\":\"5vvMN\",\"./autoSizeMix\":\"eukuj\",\"./rectMix\":\"dSo4g\",\"./flipMix\":\"dJ7GF\",\"./miniMix\":\"kZI2p\",\"./posterMix\":\"fIZNk\",\"./autoHeightMix\":\"24b5p\",\"./cssVarMix\":\"gK6U1\",\"./themeMix\":\"aIG6s\",\"./typeMix\":\"i5sGy\",\"./stateMix\":\"juKiS\",\"./subtitleOffsetMix\":\"arSae\",\"./airplayMix\":\"kIugI\",\"./qualityMix\":\"lDgAt\",\"./thumbnailsMix\":\"5Mloy\",\"./optionInit\":\"a5DcW\",\"./eventInit\":\"jpd3q\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gOtyE\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>urlMix);\nvar _utils = require(\"../utils\");\nfunction urlMix(art) {\n const { option, template: { $video } } = art;\n (0, _utils.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 || (0, _utils.getExt)(newUrl);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n await (0, _utils.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 if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) art.once('video:canplay', ()=>{\n art.emit('restart', newUrl);\n });\n }\n } else {\n await (0, _utils.sleep)();\n art.loading.show = true;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"53BhY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>attrMix);\nvar _utils = require(\"../utils\");\nfunction attrMix(art) {\n const { template: { $video } } = art;\n (0, _utils.def)(art, 'attr', {\n value (key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1banF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playMix);\nvar _utils = require(\"../utils\");\nfunction playMix(art) {\n const { i18n, notice, option, constructor: { instances }, template: { $video } } = art;\n (0, _utils.def)(art, 'play', {\n value: async function() {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n if (option.mutex) for(let index = 0; index < instances.length; index++){\n const instance = instances[index];\n if (instance !== art) instance.pause();\n }\n return result;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3wC1g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pauseMix);\nvar _utils = require(\"../utils\");\nfunction pauseMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"27lNh\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>toggleMix);\nvar _utils = require(\"../utils\");\nfunction toggleMix(art) {\n (0, _utils.def)(art, 'toggle', {\n value () {\n if (art.playing) return art.pause();\n else return art.play();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"h3e53\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>seekMix);\nvar _utils = require(\"../utils\");\nfunction seekMix(art) {\n const { notice } = art;\n (0, _utils.def)(art, 'seek', {\n set (time) {\n art.currentTime = time;\n if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n art.emit('seek', art.currentTime);\n }\n });\n (0, _utils.def)(art, 'forward', {\n set (time) {\n art.seek = art.currentTime + time;\n }\n });\n (0, _utils.def)(art, 'backward', {\n set (time) {\n art.seek = art.currentTime - time;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7ZLkO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volumeMix);\nvar _utils = require(\"../utils\");\nfunction volumeMix(art) {\n const { template: { $video }, i18n, notice, storage } = art;\n (0, _utils.def)(art, 'volume', {\n get: ()=>$video.volume || 0,\n set: (percentage)=>{\n $video.volume = (0, _utils.clamp)(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) storage.set('volume', $video.volume);\n }\n });\n (0, _utils.def)(art, 'muted', {\n get: ()=>$video.muted,\n set: (muted)=>{\n $video.muted = muted;\n art.emit('muted', muted);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"e6oTn\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>currentTimeMix);\nvar _utils = require(\"../utils\");\nfunction currentTimeMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'currentTime', {\n get: ()=>$video.currentTime || 0,\n set: (time)=>{\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = (0, _utils.clamp)(time, 0, art.duration);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"asbQ7\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>durationMix);\nvar _utils = require(\"../utils\");\nfunction durationMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5l7tM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>switchMix);\nvar _utils = require(\"../utils\");\nfunction 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 art.pause();\n art.url = url;\n art.notice.show = '';\n art.once('video:error', reject);\n art.once('video:loadedmetadata', ()=>{\n art.currentTime = currentTime;\n });\n art.once('video:canplay', async ()=>{\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n if (playing) await art.play();\n art.notice.show = '';\n resolve();\n });\n });\n }\n (0, _utils.def)(art, 'switchQuality', {\n value: (url)=>{\n return switchUrl(url, art.currentTime);\n }\n });\n (0, _utils.def)(art, 'switchUrl', {\n value: (url)=>{\n return switchUrl(url, 0);\n }\n });\n (0, _utils.def)(art, 'switch', {\n set: art.switchUrl\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dHiZV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRateMix);\nvar _utils = require(\"../utils\");\nfunction playbackRateMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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 art.playbackRate = 1;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7TM4D\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatioMix);\nvar _utils = require(\"../utils\");\nfunction aspectRatioMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n (0, _utils.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 (0, _utils.setStyle)($video, 'width', null);\n (0, _utils.setStyle)($video, 'height', null);\n (0, _utils.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 if (playerRatio > setupRatio) {\n (0, _utils.setStyle)($video, 'width', `${setupRatio * clientHeight}px`);\n (0, _utils.setStyle)($video, 'height', '100%');\n (0, _utils.setStyle)($video, 'margin', '0 auto');\n } else {\n (0, _utils.setStyle)($video, 'width', '100%');\n (0, _utils.setStyle)($video, 'height', `${clientWidth / setupRatio}px`);\n (0, _utils.setStyle)($video, 'margin', 'auto 0');\n }\n $player.dataset.aspectRatio = ratio;\n }\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LouN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshotMix);\nvar _utils = require(\"../utils\");\nfunction screenshotMix(art) {\n const { notice, template: { $video } } = art;\n const $canvas = (0, _utils.createElement)('canvas');\n (0, _utils.def)(art, 'getDataURL', {\n value: ()=>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 (0, _utils.def)(art, 'getBlobUrl', {\n value: ()=>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 (0, _utils.def)(art, 'screenshot', {\n value: async (name)=>{\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${(0, _utils.secondToTime)($video.currentTime)}`;\n (0, _utils.download)(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dYSsN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenMix);\nvar _screenfull = require(\"../libs/screenfull\");\nvar _screenfullDefault = parcelHelpers.interopDefault(_screenfull);\nvar _utils = require(\"../utils\");\nfunction fullscreenMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n const nativeScreenfull = (art)=>{\n (0, _screenfullDefault.default).on('change', ()=>{\n art.emit('fullscreen', (0, _screenfullDefault.default).isFullscreen);\n if ((0, _screenfullDefault.default).isFullscreen) {\n art.state = 'fullscreen';\n (0, _utils.addClass)($player, 'art-fullscreen');\n } else (0, _utils.removeClass)($player, 'art-fullscreen');\n art.emit('resize');\n });\n (0, _screenfullDefault.default).on('error', (event)=>{\n art.emit('fullscreenError', event);\n });\n (0, _utils.def)(art, 'fullscreen', {\n get () {\n return (0, _screenfullDefault.default).isFullscreen;\n },\n async set (value) {\n if (value) await (0, _screenfullDefault.default).request($player);\n else await (0, _screenfullDefault.default).exit();\n }\n });\n };\n const webkitScreenfull = (art)=>{\n art.proxy(document, 'webkitfullscreenchange', ()=>{\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n (0, _utils.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 $video.webkitExitFullscreen();\n }\n });\n };\n art.once('video:loadedmetadata', ()=>{\n if ((0, _screenfullDefault.default).isEnabled) nativeScreenfull(art);\n else if ($video.webkitSupportsFullscreen) webkitScreenfull(art);\n else (0, _utils.def)(art, 'fullscreen', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('Fullscreen Not Supported');\n }\n });\n // Asynchronous setting\n (0, _utils.def)(art, 'fullscreen', (0, _utils.get)(art, 'fullscreen'));\n });\n}\n\n},{\"../libs/screenfull\":\"9CUfT\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9CUfT\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst 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];\nconst nativeAPI = (()=>{\n if (typeof document === 'undefined') return false;\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n for (const methodList of methodMap){\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries())returnValue[unprefixedMethods[index]] = method;\n return returnValue;\n }\n }\n return false;\n})();\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror\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 screenfull.on('change', onFullScreenEntered);\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenEntered).catch(reject);\n });\n },\n exit () {\n return new Promise((resolve, reject)=>{\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n const onFullScreenExit = ()=>{\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n screenfull.on('change', onFullScreenExit);\n const returnPromise = document[nativeAPI.exitFullscreen]();\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenExit).catch(reject);\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) document.addEventListener(eventName, callback, false);\n },\n off (event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) document.removeEventListener(eventName, callback, false);\n },\n raw: nativeAPI\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});\nif (!nativeAPI) screenfull = {\n isEnabled: false\n};\nexports.default = screenfull;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fF9Os\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWebMix);\nvar _utils = require(\"../utils\");\nfunction fullscreenWebMix(art) {\n const { constructor, template: { $container, $player } } = art;\n let cssText = '';\n (0, _utils.def)(art, 'fullscreenWeb', {\n get () {\n return (0, _utils.hasClass)($player, 'art-fullscreen-web');\n },\n set (value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)(document.body, $player);\n art.state = 'fullscreenWeb';\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', '100%');\n (0, _utils.addClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)($container, $player);\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n (0, _utils.removeClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n art.emit('resize');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hDMWY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pipMix);\nvar _utils = require(\"../utils\");\nfunction nativePip(art) {\n const { template: { $video }, proxy, notice } = art;\n $video.disablePictureInPicture = false;\n (0, _utils.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 document.exitPictureInPicture().catch((err)=>{\n notice.show = err;\n throw err;\n });\n }\n });\n proxy($video, 'enterpictureinpicture', ()=>{\n art.emit('pip', true);\n });\n proxy($video, 'leavepictureinpicture', ()=>{\n art.emit('pip', false);\n });\n}\nfunction webkitPip(art) {\n const { $video } = art.template;\n $video.webkitSetPresentationMode('inline');\n (0, _utils.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}\nfunction pipMix(art) {\n const { i18n, notice, template: { $video } } = art;\n if (document.pictureInPictureEnabled) nativePip(art);\n else if ($video.webkitSupportsPresentationMode) webkitPip(art);\n else (0, _utils.def)(art, 'pip', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('PIP Not Supported');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7RkX2\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>loadedMix);\nvar _utils = require(\"../utils\");\nfunction loadedMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'loaded', {\n get: ()=>art.loadedTime / $video.duration\n });\n (0, _utils.def)(art, 'loadedTime', {\n get: ()=>{\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jXVGX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playedMix);\nvar _utils = require(\"../utils\");\nfunction playedMix(art) {\n (0, _utils.def)(art, 'played', {\n get: ()=>art.currentTime / art.duration\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5vvMN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playingMix);\nvar _utils = require(\"../utils\");\nfunction playingMix(art) {\n const { $video } = art.template;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eukuj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoSizeMix);\nvar _utils = require(\"../utils\");\nfunction autoSizeMix(art) {\n const { $container, $player, $video } = art.template;\n (0, _utils.def)(art, 'autoSize', {\n value () {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = (0, _utils.getRect)($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n if (containerRatio > videoRatio) {\n const percentage = height * videoRatio / width * 100;\n (0, _utils.setStyle)($player, 'width', `${percentage}%`);\n (0, _utils.setStyle)($player, 'height', '100%');\n } else {\n const percentage = width / videoRatio / height * 100;\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dSo4g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>rectMix);\nvar _utils = require(\"../utils\");\nfunction rectMix(art) {\n (0, _utils.def)(art, 'rect', {\n get: ()=>{\n return (0, _utils.getRect)(art.template.$player);\n }\n });\n const keys = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width'\n ];\n for(let index = 0; index < keys.length; index++){\n const key = keys[index];\n (0, _utils.def)(art, key, {\n get: ()=>{\n return art.rect[key];\n }\n });\n }\n (0, _utils.def)(art, 'x', {\n get: ()=>{\n return art.left + window.pageXOffset;\n }\n });\n (0, _utils.def)(art, 'y', {\n get: ()=>{\n return art.top + window.pageYOffset;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dJ7GF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flipMix);\nvar _utils = require(\"../utils\");\nfunction flipMix(art) {\n const { template: { $player }, i18n, notice } = art;\n (0, _utils.def)(art, 'flip', {\n get () {\n return $player.dataset.flip || 'normal';\n },\n set (flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') delete $player.dataset.flip;\n else $player.dataset.flip = flip;\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get((0, _utils.capitalize)(flip))}`;\n art.emit('flip', flip);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kZI2p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniMix);\nvar _utils = require(\"../utils\");\nfunction miniMix(art) {\n const { icons, proxy, storage, template: { $player, $video } } = art;\n let isDragging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.removeClass)($player, 'art-mini');\n (0, _utils.setStyle)($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n function initState($play, $pause) {\n if (art.playing) {\n (0, _utils.setStyle)($play, 'display', `none`);\n (0, _utils.setStyle)($pause, 'display', `flex`);\n } else {\n (0, _utils.setStyle)($play, 'display', `flex`);\n (0, _utils.setStyle)($pause, 'display', `none`);\n }\n }\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.append)($mini, $video);\n return (0, _utils.setStyle)($mini, 'display', 'flex');\n } else {\n const $mini = (0, _utils.createElement)('div');\n (0, _utils.addClass)($mini, 'art-mini-popup');\n (0, _utils.append)(document.body, $mini);\n art.template.$mini = $mini;\n (0, _utils.append)($mini, $video);\n const $close = (0, _utils.append)($mini, `
`);\n (0, _utils.append)($close, icons.close);\n proxy($close, 'click', hideMini);\n const $state = (0, _utils.append)($mini, `
`);\n const $play = (0, _utils.append)($state, icons.play);\n const $pause = (0, _utils.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 proxy($mini, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n (0, _utils.addClass)($mini, 'art-mini-dragging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n (0, _utils.setStyle)($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) {\n isDragging = false;\n (0, _utils.removeClass)($mini, 'art-mini-dragging');\n const rect = (0, _utils.getRect)($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n (0, _utils.setStyle)($mini, 'left', `${rect.left}px`);\n (0, _utils.setStyle)($mini, 'top', `${rect.top}px`);\n (0, _utils.setStyle)($mini, 'transform', null);\n }\n });\n return $mini;\n }\n }\n function initMini() {\n const { $mini } = art.template;\n const rect = (0, _utils.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 (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n }\n (0, _utils.def)(art, 'mini', {\n get () {\n return (0, _utils.hasClass)($player, 'art-mini');\n },\n set (value) {\n if (value) {\n art.state = 'mini';\n (0, _utils.addClass)($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (typeof top === 'number' && typeof left === 'number') {\n (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n if (!(0, _utils.isInViewport)($mini)) initMini();\n } else initMini();\n art.emit('mini', true);\n } else hideMini();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fIZNk\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>posterMix);\nvar _utils = require(\"../utils\");\nfunction posterMix(art) {\n const { template: { $poster } } = art;\n (0, _utils.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 (0, _utils.setStyle)($poster, 'backgroundImage', `url(${url})`);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"24b5p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoHeightMix);\nvar _utils = require(\"../utils\");\nfunction autoHeightMix(art) {\n const { template: { $container, $video } } = art;\n (0, _utils.def)(art, 'autoHeight', {\n value () {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n (0, _utils.setStyle)($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gK6U1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>cssVarMix);\nvar _utils = require(\"../utils\");\nfunction cssVarMix(art) {\n const { $player } = art.template;\n (0, _utils.def)(art, 'cssVar', {\n value (key, value) {\n if (value) return $player.style.setProperty(key, value);\n else return getComputedStyle($player).getPropertyValue(key);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aIG6s\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>themeMix);\nvar _utils = require(\"../utils\");\nfunction themeMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"i5sGy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>typeMix);\nvar _utils = require(\"../utils\");\nfunction typeMix(art) {\n (0, _utils.def)(art, 'type', {\n get () {\n return art.option.type;\n },\n set (type) {\n art.option.type = type;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"juKiS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>stateMix);\nvar _utils = require(\"../utils\");\nfunction stateMix(art) {\n const states = [\n 'mini',\n 'pip',\n 'fullscreen',\n 'fullscreenWeb'\n ];\n (0, _utils.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]) art[prop] = false;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"arSae\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffsetMix);\nvar _utils = require(\"../utils\");\nfunction subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n (0, _utils.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 = (0, _utils.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 = (0, _utils.clamp)(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kIugI\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplayMix);\nvar _utils = require(\"../utils\");\nfunction airplayMix(art) {\n const { i18n, notice, proxy, template: { $video } } = art;\n let available = true;\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) 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 available = false;\n (0, _utils.def)(art, 'airplay', {\n value () {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else notice.show = i18n.get('AirPlay Not Available');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lDgAt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>qualityMix);\nvar _utils = require(\"../utils\");\nfunction qualityMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Mloy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>thumbnailsMix);\nvar _utils = require(\"../utils\");\nfunction thumbnailsMix(art) {\n const { events, option, template: { $progress, $video } } = art;\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\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 (0, _utils.setStyle)($thumbnails, 'backgroundImage', `url(${image.src})`);\n (0, _utils.setStyle)($thumbnails, 'height', `${height2}px`);\n (0, _utils.setStyle)($thumbnails, 'width', `${width2}px`);\n (0, _utils.setStyle)($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', 0);\n else if (posWidth > $progress.clientWidth - width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n else (0, _utils.setStyle)($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n events.hover($progress, ()=>{\n isHover = true;\n }, ()=>{\n isHover = false;\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 const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true;\n image = await (0, _utils.loadImg)(url, scale);\n isLoad = true;\n }\n if (!isLoad || !isHover) return;\n const width = $progress.clientWidth * percentage;\n (0, _utils.setStyle)($thumbnails, 'display', 'flex');\n if (width > 0 && width < $progress.clientWidth) showThumbnails(width);\n else if (!(0, _utils.isMobile)) (0, _utils.setStyle)($thumbnails, 'display', 'none');\n if (isMobileDragging) {\n clearTimeout(timer);\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"a5DcW\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>optionInit);\nvar _utils = require(\"../utils\");\nfunction optionInit(art) {\n const { option, storage, template: { $video, $poster } } = art;\n for(const key in option.moreVideoAttr)art.attr(key, option.moreVideoAttr[key]);\n if (option.muted) art.muted = option.muted;\n if (option.volume) $video.volume = (0, _utils.clamp)(option.volume, 0, 1);\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') $video.volume = (0, _utils.clamp)(volumeStorage, 0, 1);\n if (option.poster) (0, _utils.setStyle)($poster, 'backgroundImage', `url(${option.poster})`);\n if (option.autoplay) $video.autoplay = option.autoplay;\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n if (option.theme) option.cssVar['--art-theme'] = option.theme;\n for(const key in option.cssVar)art.cssVar(key, option.cssVar[key]);\n art.url = option.url;\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jpd3q\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>eventInit);\nvar _config = require(\"../config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _utils = require(\"../utils\");\nfunction eventInit(art) {\n const { i18n, notice, option, constructor, proxy, template: { $player, $video, $poster } } = art;\n let reconnectTime = 0;\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)proxy($video, (0, _configDefault.default).events[index], (event)=>{\n art.emit(`video:${event.type}`, event);\n });\n // art.on('video:abort', () => {\n // });\n art.on('video:canplay', ()=>{\n reconnectTime = 0;\n art.loading.show = false;\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 // art.on('video:canplaythrough', () => {\n // });\n // art.on('video:durationchange', () => {\n // });\n // art.on('video:emptied', () => {\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 art.on('video:error', async (error)=>{\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await (0, _utils.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 (0, _utils.addClass)($player, 'art-error');\n await (0, _utils.sleep)(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n }\n });\n // art.on('video:loadeddata', () => {\n // });\n art.on('video:loadedmetadata', ()=>{\n art.emit('resize');\n if (0, _utils.isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n art.on('video:loadstart', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n art.on('video:pause', ()=>{\n art.controls.show = true;\n art.mask.show = true;\n });\n art.on('video:play', ()=>{\n art.mask.show = false;\n (0, _utils.setStyle)($poster, 'display', 'none');\n });\n art.on('video:playing', ()=>{\n art.mask.show = false;\n });\n art.on('video:progress', ()=>{\n if (art.playing) art.loading.show = false;\n });\n // art.on('video:ratechange', () => {\n // });\n art.on('video:seeked', ()=>{\n art.loading.show = false;\n art.mask.show = true;\n });\n art.on('video:seeking', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n // art.on('video:stalled', () => {\n // });\n // art.on('video:suspend', () => {\n // });\n art.on('video:timeupdate', ()=>{\n art.mask.show = false;\n });\n // art.on('video:volumechange', () => {\n // });\n art.on('video:waiting', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n\n},{\"../config\":\"auZaO\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3aoXC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _fullscreen = require(\"./fullscreen\");\nvar _fullscreenDefault = parcelHelpers.interopDefault(_fullscreen);\nvar _fullscreenWeb = require(\"./fullscreenWeb\");\nvar _fullscreenWebDefault = parcelHelpers.interopDefault(_fullscreenWeb);\nvar _pip = require(\"./pip\");\nvar _pipDefault = parcelHelpers.interopDefault(_pip);\nvar _playAndPause = require(\"./playAndPause\");\nvar _playAndPauseDefault = parcelHelpers.interopDefault(_playAndPause);\nvar _progress = require(\"./progress\");\nvar _progressDefault = parcelHelpers.interopDefault(_progress);\nvar _time = require(\"./time\");\nvar _timeDefault = parcelHelpers.interopDefault(_time);\nvar _volume = require(\"./volume\");\nvar _volumeDefault = parcelHelpers.interopDefault(_volume);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _screenshot = require(\"./screenshot\");\nvar _screenshotDefault = parcelHelpers.interopDefault(_screenshot);\nvar _airplay = require(\"./airplay\");\nvar _airplayDefault = parcelHelpers.interopDefault(_airplay);\nvar _utils = require(\"../utils\");\nclass Control extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n art.on('mousemove', ()=>{\n if (!(0, _utils.isMobile)) this.show = true;\n });\n art.on('click', ()=>{\n if (0, _utils.isMobile) this.toggle();\n else this.show = true;\n });\n art.on('document:mousemove', (event)=>{\n this.isHover = (0, _utils.includeFromEvent)(event, $bottom);\n });\n art.on('video:timeupdate', ()=>{\n if (!art.setting.show && !this.isHover && !art.isInput && art.playing && this.show && Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME) this.show = false;\n });\n art.on('control', (state)=>{\n if (state) {\n (0, _utils.removeClass)($player, 'art-hide-cursor');\n (0, _utils.addClass)($player, 'art-hover');\n this.timer = Date.now();\n } else {\n (0, _utils.addClass)($player, 'art-hide-cursor');\n (0, _utils.removeClass)($player, 'art-hover');\n }\n });\n this.init();\n }\n init() {\n const { option } = this.art;\n if (!option.isLive) this.add((0, _progressDefault.default)({\n name: 'progress',\n position: 'top',\n index: 10\n }));\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20\n });\n this.add((0, _playAndPauseDefault.default)({\n name: 'playAndPause',\n position: 'left',\n index: 10\n }));\n this.add((0, _volumeDefault.default)({\n name: 'volume',\n position: 'left',\n index: 20\n }));\n if (!option.isLive) this.add((0, _timeDefault.default)({\n name: 'time',\n position: 'left',\n index: 30\n }));\n if (option.quality.length) (0, _utils.sleep)().then(()=>{\n this.art.quality = option.quality;\n });\n if (option.screenshot && !(0, _utils.isMobile)) this.add((0, _screenshotDefault.default)({\n name: 'screenshot',\n position: 'right',\n index: 20\n }));\n if (option.setting) this.add((0, _settingDefault.default)({\n name: 'setting',\n position: 'right',\n index: 30\n }));\n if (option.pip) this.add((0, _pipDefault.default)({\n name: 'pip',\n position: 'right',\n index: 40\n }));\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) this.add((0, _airplayDefault.default)({\n name: 'airplay',\n position: 'right',\n index: 50\n }));\n if (option.fullscreenWeb) this.add((0, _fullscreenWebDefault.default)({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60\n }));\n if (option.fullscreen) this.add((0, _fullscreenDefault.default)({\n name: 'fullscreen',\n position: 'right',\n index: 70\n }));\n for(let index = 0; index < option.controls.length; index++)this.add(option.controls[index]);\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\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 (0, _utils.errorHandle)(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n super.add(option);\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) (0, _utils.inverseClass)(item.$control_item, 'art-current');\n }\n }\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n (0, _utils.addClass)($ref, 'art-control-selector');\n const $value = (0, _utils.createElement)('div');\n (0, _utils.addClass)($value, 'art-selector-value');\n (0, _utils.append)($value, option.html);\n $ref.innerText = '';\n (0, _utils.append)($ref, $value);\n const $list = (0, _utils.createElement)('div');\n (0, _utils.addClass)($list, 'art-selector-list');\n (0, _utils.append)($ref, $list);\n for(let index = 0; index < option.selector.length; index++){\n const item = option.selector[index];\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-selector-item');\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n (0, _utils.append)($list, $item);\n (0, _utils.def)(item, '$control_option', {\n get: ()=>option.selector\n });\n (0, _utils.def)(item, '$control_item', {\n get: ()=>$item\n });\n (0, _utils.def)(item, '$control_value', {\n get: ()=>$value\n });\n }\n const event = proxy($list, 'click', async (event)=>{\n const path = event.composedPath() || [];\n const item = option.selector.find((item)=>item.$control_item === path.find(($item)=>item.$control_item === $item));\n this.check(item);\n if (option.onSelect) $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n });\n events.push(event);\n }\n}\nexports.default = Control;\n\n},{\"../utils/component\":\"euCTd\",\"./fullscreen\":\"9LKex\",\"./fullscreenWeb\":\"htT34\",\"./pip\":\"7zSba\",\"./playAndPause\":\"kGz8j\",\"./progress\":\"7zX2b\",\"./time\":\"eUF3T\",\"./volume\":\"5Jp6A\",\"./setting\":\"aPd5g\",\"./screenshot\":\"cEkSl\",\"./airplay\":\"iUshw\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"euCTd\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nvar _error = require(\"./error\");\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"../scheme\");\nclass 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 get show() {\n return (0, _dom.hasClass)(this.art.template.$player, `art-${this.name}-show`);\n }\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) (0, _dom.addClass)($player, className);\n else (0, _dom.removeClass)($player, className);\n this.art.emit(this.name, value);\n }\n toggle() {\n this.show = !this.show;\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n (0, _optionValidatorDefault.default)(option, (0, _scheme.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 (0, _error.errorHandle)(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n this.id += 1;\n const $ref = (0, _dom.createElement)('div');\n (0, _dom.addClass)($ref, `art-${this.name}`);\n (0, _dom.addClass)($ref, `art-${this.name}-${name}`);\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) nextChild.insertAdjacentElement('beforebegin', $ref);\n else (0, _dom.append)(this.$parent, $ref);\n if (option.html) (0, _dom.append)($ref, option.html);\n if (option.style) (0, _dom.setStyles)($ref, option.style);\n if (option.tooltip) (0, _dom.tooltip)($ref, option.tooltip);\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 if (option.selector && [\n 'left',\n 'right'\n ].includes(option.position)) this.selector(option, $ref, events);\n this[name] = $ref;\n this.cache.set(name, {\n $ref,\n events,\n option\n });\n if (option.mounted) option.mounted.call(this.art, $ref);\n return $ref;\n }\n remove(name) {\n const item = this.cache.get(name);\n (0, _error.errorHandle)(item, `Can't find [${name}] from the [${this.name}]`);\n if (item.option.beforeUnmount) item.option.beforeUnmount.call(this.art, item.$ref);\n for(let index = 0; index < item.events.length; index++)this.art.events.remove(item.events[index]);\n this.cache.delete(name);\n delete this[name];\n (0, _dom.remove)(item.$ref);\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}\nexports.default = Component;\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"option-validator\":\"glVMO\",\"../scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LKex\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreen);\nvar _utils = require(\"../utils\");\nfunction fullscreen(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenOn = (0, _utils.append)($control, icons.fullscreenOn);\n const $fullscreenOff = (0, _utils.append)($control, icons.fullscreenOff);\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreen = !art.fullscreen;\n });\n art.on('fullscreen', (state)=>{\n if (state) {\n (0, _utils.tooltip)($control, i18n.get('Exit Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"htT34\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWeb);\nvar _utils = require(\"../utils\");\nfunction fullscreenWeb(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenWebOn = (0, _utils.append)($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = (0, _utils.append)($control, icons.fullscreenWebOff);\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n art.on('fullscreenWeb', (value)=>{\n if (value) {\n (0, _utils.tooltip)($control, i18n.get('Exit Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zSba\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pip);\nvar _utils = require(\"../utils\");\nfunction pip(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.pip);\n proxy($control, 'click', ()=>{\n art.pip = !art.pip;\n });\n art.on('pip', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kGz8j\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playAndPause);\nvar _utils = require(\"../utils\");\nfunction playAndPause(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $play = (0, _utils.append)($control, icons.play);\n const $pause = (0, _utils.append)($control, icons.pause);\n (0, _utils.tooltip)($play, i18n.get('Play'));\n (0, _utils.tooltip)($pause, i18n.get('Pause'));\n proxy($play, 'click', ()=>{\n art.play();\n });\n proxy($pause, 'click', ()=>{\n art.pause();\n });\n function showPlay() {\n (0, _utils.setStyle)($play, 'display', 'flex');\n (0, _utils.setStyle)($pause, 'display', 'none');\n }\n function showPause() {\n (0, _utils.setStyle)($play, 'display', 'none');\n (0, _utils.setStyle)($pause, 'display', 'flex');\n }\n if (art.playing) showPause();\n else showPlay();\n art.on('video:playing', ()=>{\n showPause();\n });\n art.on('video:pause', ()=>{\n showPlay();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zX2b\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getPosFromEvent\", ()=>getPosFromEvent);\nparcelHelpers.export(exports, \"setCurrentTime\", ()=>setCurrentTime);\nparcelHelpers.export(exports, \"default\", ()=>progress);\nvar _utils = require(\"../utils\");\nfunction getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = (0, _utils.getRect)($progress);\n const eventLeft = (0, _utils.isMobile) ? event.touches[0].clientX : event.clientX;\n const width = (0, _utils.clamp)(eventLeft - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * art.duration;\n const time = (0, _utils.secondToTime)(second);\n const percentage = (0, _utils.clamp)(width / $progress.clientWidth, 0, 1);\n return {\n second,\n time,\n width,\n percentage\n };\n}\nfunction 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}\nfunction progress(options) {\n return (art)=>{\n const { icons, option, proxy } = art;\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 const $hover = (0, _utils.query)('.art-progress-hover', $control);\n const $loaded = (0, _utils.query)('.art-progress-loaded', $control);\n const $played = (0, _utils.query)('.art-progress-played', $control);\n const $highlight = (0, _utils.query)('.art-progress-highlight', $control);\n const $indicator = (0, _utils.query)('.art-progress-indicator', $control);\n const $tip = (0, _utils.query)('.art-progress-tip', $control);\n if (icons.indicator) (0, _utils.append)($indicator, icons.indicator);\n else (0, _utils.setStyle)($indicator, 'backgroundColor', 'var(--art-theme)');\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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 = (0, _utils.clamp)(item.time, 0, art.duration) / art.duration * 100;\n const html = ``;\n (0, _utils.append)($highlight, html);\n }\n }\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'loaded') (0, _utils.setStyle)($loaded, 'width', `${percentage * 100}%`);\n if (type === 'hover') (0, _utils.setStyle)($hover, 'width', `${percentage * 100}%`);\n if (type === 'played') {\n (0, _utils.setStyle)($played, 'width', `${percentage * 100}%`);\n (0, _utils.setStyle)($indicator, 'left', `${percentage * 100}%`);\n }\n if (isMobileDragging) {\n (0, _utils.setStyle)($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = (0, _utils.secondToTime)(percentage * art.duration);\n showTime(event, {\n width,\n time\n });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(()=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n }, 500);\n }\n }\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n if (art.constructor.USE_RAF) 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 art.on('video:progress', ()=>{\n art.emit('setBar', 'loaded', art.loaded);\n });\n art.on('video:ended', ()=>{\n art.emit('setBar', 'played', 1);\n });\n }\n art.emit('setBar', 'loaded', art.loaded || 0);\n if (!(0, _utils.isMobile)) {\n proxy($control, 'click', (event)=>{\n if (event.target !== $indicator) setCurrentTime(art, event);\n });\n proxy($control, 'mousemove', (event)=>{\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n (0, _utils.setStyle)($tip, 'display', 'flex');\n if ((0, _utils.includeFromEvent)(event, $highlight)) showHighlight(event);\n else showTime(event);\n });\n proxy($control, 'mouseleave', (event)=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n proxy($control, 'mousedown', (event)=>{\n isDragging = event.button === 0;\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 art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eUF3T\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>time);\nvar _utils = require(\"../utils\");\nfunction time(option) {\n return (art)=>({\n ...option,\n style: (0, _utils.isMobile) ? {\n fontSize: '12px',\n padding: '0 5px'\n } : {\n cursor: 'auto',\n padding: '0 10px'\n },\n mounted: ($control)=>{\n function getTime() {\n const newTime = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n if (newTime !== $control.innerText) $control.innerText = newTime;\n }\n getTime();\n const events = [\n 'video:loadedmetadata',\n 'video:timeupdate',\n 'video:progress'\n ];\n for(let index = 0; index < events.length; index++)art.on(events[index], getTime);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Jp6A\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volume);\nvar _utils = require(\"../utils\");\nfunction volume(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons } = art;\n const $volume = (0, _utils.append)($control, icons.volume);\n const $close = (0, _utils.append)($control, icons.volumeClose);\n const $panel = (0, _utils.append)($control, '
');\n const $inner = (0, _utils.append)($panel, '
');\n const $value = (0, _utils.append)($inner, `
`);\n const $slider = (0, _utils.append)($inner, `
`);\n const $handle = (0, _utils.append)($slider, `
`);\n const $loaded = (0, _utils.append)($handle, `
`);\n const $indicator = (0, _utils.append)($slider, `
`);\n function getVolumeFromEvent(event) {\n const { top, height } = (0, _utils.getRect)($slider);\n return 1 - (event.clientY - top) / height;\n }\n function update() {\n if (art.muted || art.volume === 0) {\n (0, _utils.setStyle)($volume, 'display', 'none');\n (0, _utils.setStyle)($close, 'display', 'flex');\n (0, _utils.setStyle)($indicator, 'top', '100%');\n (0, _utils.setStyle)($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n (0, _utils.setStyle)($volume, 'display', 'flex');\n (0, _utils.setStyle)($close, 'display', 'none');\n (0, _utils.setStyle)($indicator, 'top', `${100 - percentage}%`);\n (0, _utils.setStyle)($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n update();\n art.on('video:volumechange', update);\n proxy($volume, 'click', ()=>{\n art.muted = true;\n });\n proxy($close, 'click', ()=>{\n art.muted = false;\n });\n if (0, _utils.isMobile) (0, _utils.setStyle)($panel, 'display', 'none');\n else {\n let isDragging = false;\n proxy($slider, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aPd5g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>setting);\nvar _utils = require(\"../utils\");\nfunction setting(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.setting);\n proxy($control, 'click', ()=>{\n art.setting.toggle();\n art.setting.resize();\n });\n art.on('setting', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cEkSl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshot);\nvar _utils = require(\"../utils\");\nfunction screenshot(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.screenshot);\n proxy($control, 'click', ()=>{\n art.screenshot();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iUshw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplay);\nvar _utils = require(\"../utils\");\nfunction airplay(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.airplay);\n proxy($control, 'click', ()=>art.airplay());\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5YYHx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _version = require(\"./version\");\nvar _versionDefault = parcelHelpers.interopDefault(_version);\nvar _close = require(\"./close\");\nvar _closeDefault = parcelHelpers.interopDefault(_close);\nclass Contextmenu extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { option, proxy, template: { $player, $contextmenu } } = this.art;\n if (option.playbackRate) this.add((0, _playbackRateDefault.default)({\n name: 'playbackRate',\n index: 10\n }));\n if (option.aspectRatio) this.add((0, _aspectRatioDefault.default)({\n name: 'aspectRatio',\n index: 20\n }));\n if (option.flip) this.add((0, _flipDefault.default)({\n name: 'flip',\n index: 30\n }));\n this.add((0, _infoDefault.default)({\n name: 'info',\n index: 40\n }));\n this.add((0, _versionDefault.default)({\n name: 'version',\n index: 50\n }));\n this.add((0, _closeDefault.default)({\n name: 'close',\n index: 60\n }));\n for(let index = 0; index < option.contextmenu.length; index++)this.add(option.contextmenu[index]);\n proxy($player, 'contextmenu', (event)=>{\n if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n this.show = true;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = (0, _utils.getRect)($player);\n const { height: mHeight, width: mWidth } = (0, _utils.getRect)($contextmenu);\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n if (mouseX + mWidth > cLeft + cWidth) menuLeft = cWidth - mWidth;\n if (mouseY + mHeight > cTop + cHeight) menuTop = cHeight - mHeight;\n (0, _utils.setStyles)($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`\n });\n });\n proxy($player, 'click', (event)=>{\n if (!(0, _utils.includeFromEvent)(event, $contextmenu)) this.show = false;\n });\n this.art.on('blur', ()=>{\n this.show = false;\n });\n }\n}\nexports.default = Contextmenu;\n\n},{\"../utils\":\"2zmtQ\",\"../utils/component\":\"euCTd\",\"./playbackRate\":\"lWYo9\",\"./aspectRatio\":\"5d6ZO\",\"./flip\":\"1GWlZ\",\"./info\":\"c5pls\",\"./version\":\"lD1aU\",\"./close\":\"4jD3d\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lWYo9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nvar _utils = require(\"../utils\");\nfunction playbackRate(option) {\n return (art)=>{\n const { i18n, constructor: { PLAYBACK_RATE } } = art;\n const html = PLAYBACK_RATE.map((item)=>`${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`).join('');\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 = (0, _utils.query)('[data-value=\"1\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('video:ratechange', ()=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>Number(item.dataset.value) === art.playbackRate);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5d6ZO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nvar _utils = require(\"../utils\");\nfunction aspectRatio(option) {\n return (art)=>{\n const { i18n, constructor: { ASPECT_RATIO } } = art;\n const html = ASPECT_RATIO.map((item)=>`${item === 'default' ? i18n.get('Default') : item}`).join('');\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 = (0, _utils.query)('[data-value=\"default\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('aspectRatio', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1GWlZ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(option) {\n return (art)=>{\n const { i18n, constructor: { FLIP } } = art;\n const html = FLIP.map((item)=>`${i18n.get((0, _utils.capitalize)(item))}`).join('');\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 = (0, _utils.query)('[data-value=\"normal\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('flip', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"c5pls\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>info);\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lD1aU\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>function(option) {\n return {\n ...option,\n html: `ArtPlayer ${0, _packageJson.version}`\n };\n });\nvar _packageJson = require(\"../../package.json\");\n\n},{\"../../package.json\":\"3QATz\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4jD3d\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>close);\nfunction close(option) {\n return (art)=>({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu)=>{\n contextmenu.show = false;\n }\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"j6kB4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Info extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'info';\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor, template: { $infoPanel, $infoClose, $video } } = this.art;\n proxy($infoClose, 'click', ()=>{\n this.show = false;\n });\n let timer = null;\n const $types = (0, _utils.queryAll)('[data-video]', $infoPanel) || [];\n this.art.on('destroy', ()=>clearTimeout(timer));\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) item.innerText = innerText;\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n loop();\n }\n}\nexports.default = Info;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ldqPL\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nclass Subtitle extends (0, _componentDefault.default) {\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 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 get url() {\n return this.art.template.$track.src;\n }\n set url(url) {\n this.switch(url);\n }\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0];\n }\n get activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\n }\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') return (0, _utils.setStyles)($subtitle, key);\n return (0, _utils.setStyle)($subtitle, key, value);\n }\n update() {\n const { option: { subtitle }, template: { $subtitle } } = this.art;\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues.map((cue, index)=>cue.text.split(/\\r?\\n/).filter((line)=>line.trim()).map((line)=>`
\n ${subtitle.escape ? (0, _utils.escape)(line) : line}\n
`).join('')).join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\n }\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = {\n ...option.subtitle,\n ...newOption,\n url\n };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n return subUrl;\n }\n createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n const $newTrack = (0, _utils.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 this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n (0, _utils.remove)($track);\n (0, _utils.append)($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', ()=>this.update());\n }\n async init(subtitleOption) {\n const { notice, template: { $subtitle } } = this.art;\n if (!this.textTrack) return null;\n (0, _optionValidatorDefault.default)(subtitleOption, (0, _schemeDefault.default).subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n return fetch(subtitleOption.url).then((response)=>response.arrayBuffer()).then((buffer)=>{\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch(subtitleOption.type || (0, _utils.getExt)(subtitleOption.url)){\n case 'srt':\n {\n const vtt = (0, _utils.srtToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'ass':\n {\n const vtt = (0, _utils.assToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'vtt':\n {\n const vttNew = subtitleOption.onVttLoad(text);\n return (0, _utils.vttToBlob)(vttNew);\n }\n default:\n return subtitleOption.url;\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 }).catch((err)=>{\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\nexports.default = Subtitle;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"option-validator\":\"glVMO\",\"./scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5jGH8\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _clickInit = require(\"./clickInit\");\nvar _clickInitDefault = parcelHelpers.interopDefault(_clickInit);\nvar _hoverInit = require(\"./hoverInit\");\nvar _hoverInitDefault = parcelHelpers.interopDefault(_hoverInit);\nvar _moveInit = require(\"./moveInit\");\nvar _moveInitDefault = parcelHelpers.interopDefault(_moveInit);\nvar _resizeInit = require(\"./resizeInit\");\nvar _resizeInitDefault = parcelHelpers.interopDefault(_resizeInit);\nvar _gestureInit = require(\"./gestureInit\");\nvar _gestureInitDefault = parcelHelpers.interopDefault(_gestureInit);\nvar _viewInit = require(\"./viewInit\");\nvar _viewInitDefault = parcelHelpers.interopDefault(_viewInit);\nvar _documentInit = require(\"./documentInit\");\nvar _documentInitDefault = parcelHelpers.interopDefault(_documentInit);\nvar _updateInit = require(\"./updateInit\");\nvar _updateInitDefault = parcelHelpers.interopDefault(_updateInit);\nvar _restoreInit = require(\"./restoreInit\");\nvar _restoreInitDefault = parcelHelpers.interopDefault(_restoreInit);\nclass Events {\n constructor(art){\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n (0, _clickInitDefault.default)(art, this);\n (0, _hoverInitDefault.default)(art, this);\n (0, _moveInitDefault.default)(art, this);\n (0, _resizeInitDefault.default)(art, this);\n (0, _gestureInitDefault.default)(art, this);\n (0, _viewInitDefault.default)(art, this);\n (0, _documentInitDefault.default)(art, this);\n (0, _updateInitDefault.default)(art, this);\n (0, _restoreInitDefault.default)(art, this);\n }\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) return name.map((item)=>this.proxy(target, item, callback, option));\n target.addEventListener(name, callback, option);\n const destroy = ()=>target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) this.proxy(target, 'mouseenter', mouseenter);\n if (mouseleave) this.proxy(target, 'mouseleave', mouseleave);\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 destroy() {\n for(let index = 0; index < this.destroyEvents.length; index++)this.destroyEvents[index]();\n }\n}\nexports.default = Events;\n\n},{\"./clickInit\":\"5AH6F\",\"./hoverInit\":\"egLHg\",\"./moveInit\":\"iGcl4\",\"./resizeInit\":\"1DNHs\",\"./gestureInit\":\"efKpC\",\"./viewInit\":\"fNuBy\",\"./documentInit\":\"kHtUy\",\"./updateInit\":\"8cq8y\",\"./restoreInit\":\"3XeLA\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5AH6F\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>clickInit);\nvar _utils = require(\"../utils\");\nfunction clickInit(art, events) {\n const { constructor, template: { $player, $video } } = art;\n events.proxy(document, [\n 'click',\n 'contextmenu'\n ], (event)=>{\n if ((0, _utils.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 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 const clicks = clickTimes.filter((t)=>now - t <= DBCLICK_TIME);\n switch(clicks.length){\n case 1:\n art.emit('click', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) art.toggle();\n } else art.toggle();\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) art.toggle();\n } else if (DBCLICK_FULLSCREEN) art.fullscreen = !art.fullscreen;\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"egLHg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>hoverInit);\nvar _utils = require(\"../utils\");\nfunction hoverInit(art, events) {\n const { $player } = art.template;\n events.hover($player, (event)=>{\n (0, _utils.addClass)($player, 'art-hover');\n art.emit('hover', true, event);\n }, (event)=>{\n (0, _utils.removeClass)($player, 'art-hover');\n art.emit('hover', false, event);\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iGcl4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>moveInit);\nfunction moveInit(art, events) {\n const { $player } = art.template;\n events.proxy($player, 'mousemove', (event)=>{\n art.emit('mousemove', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1DNHs\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>resizeInit);\nvar _utils = require(\"../utils\");\nfunction resizeInit(art, events) {\n const { option, constructor } = art;\n art.on('resize', ()=>{\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) art.autoSize();\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n const resizeFn = (0, _utils.debounce)(()=>art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, [\n 'orientationchange',\n 'resize'\n ], ()=>resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, 'change', ()=>resizeFn());\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"efKpC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>gestureInit);\nvar _utils = require(\"../utils\");\nvar _progress = require(\"../control/progress\");\nfunction GetSlideAngle(dx, dy) {\n return Math.atan2(dy, dx) * 180 / Math.PI;\n}\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) return result;\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) result = 4;\n else if (angle >= 45 && angle < 135) result = 1;\n else if (angle >= -135 && angle < -45) result = 2;\n else if (angle >= 135 && angle <= 180 || angle >= -180 && angle < -135) result = 3;\n return result;\n}\nfunction gestureInit(art, events) {\n if ((0, _utils.isMobile) && !art.option.isLive) {\n const { $video, $progress } = art.template;\n let touchTarget = null;\n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n const onTouchStart = (event)=>{\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) (0, _progress.setCurrentTime)(art, event);\n isDragging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\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 = [\n 3,\n 4\n ].includes(direction);\n const isVertical = [\n 1,\n 2\n ].includes(direction);\n const isLegal = isHorizontal && !art.isRotate || isVertical && art.isRotate;\n if (isLegal) {\n const ratioX = (0, _utils.clamp)((pageX - startX) / art.width, -1, 1);\n const ratioY = (0, _utils.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 = (0, _utils.clamp)(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', (0, _utils.clamp)(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${(0, _utils.secondToTime)(currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\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 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 events.proxy($progress, 'touchstart', (event)=>{\n touchTarget = $progress;\n onTouchStart(event);\n });\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n\n},{\"../utils\":\"2zmtQ\",\"../control/progress\":\"7zX2b\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fNuBy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>viewInit);\nvar _utils = require(\"../utils\");\nfunction viewInit(art, events) {\n const { option, constructor, template: { $container } } = art;\n const scrollFn = (0, _utils.throttle)(()=>{\n art.emit('view', (0, _utils.isInViewport)($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n events.proxy(window, 'scroll', ()=>scrollFn());\n art.on('view', (state)=>{\n if (option.autoMini) art.mini = !state;\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kHtUy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>documentInit);\nfunction documentInit(art, events) {\n events.proxy(document, 'mousemove', (event)=>{\n art.emit('document:mousemove', event);\n });\n events.proxy(document, 'mouseup', (event)=>{\n art.emit('document:mouseup', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8cq8y\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>updateInit);\nfunction updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n (function update() {\n if (art.playing) art.emit('raf');\n if (!art.isDestroy) timer = requestAnimationFrame(update);\n })();\n art.on('destroy', ()=>{\n cancelAnimationFrame(timer);\n });\n }\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3XeLA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>restoreInit);\nfunction restoreInit(art, events) {\n//\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8a1Mr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Hotkey {\n constructor(art){\n this.art = art;\n this.keys = {};\n if (art.option.hotkey && !(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor } = this.art;\n this.add('Escape', ()=>{\n if (this.art.fullscreenWeb) this.art.fullscreenWeb = false;\n });\n this.add('Space', ()=>{\n this.art.toggle();\n });\n this.add('ArrowLeft', ()=>{\n this.art.backward = constructor.SEEK_STEP;\n });\n this.add('ArrowUp', ()=>{\n this.art.volume += constructor.VOLUME_STEP;\n });\n this.add('ArrowRight', ()=>{\n this.art.forward = constructor.SEEK_STEP;\n });\n this.add('ArrowDown', ()=>{\n this.art.volume -= constructor.VOLUME_STEP;\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 (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true' && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {\n const events = this.keys[event.code];\n if (events) {\n event.preventDefault();\n for(let index = 0; index < events.length; index++)events[index].call(this.art, event);\n this.art.emit('hotkey', event);\n }\n }\n }\n this.art.emit('keydown', event);\n });\n }\n add(key, event) {\n if (this.keys[key]) this.keys[key].push(event);\n else this.keys[key] = [\n event\n ];\n return this;\n }\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) this.keys[key].splice(index, 1);\n }\n return this;\n }\n}\nexports.default = Hotkey;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3WCuK\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Layer extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, template: { $layer } } = art;\n this.name = 'layer';\n this.$parent = $layer;\n for(let index = 0; index < option.layers.length; index++)this.add(option.layers[index]);\n }\n}\nexports.default = Layer;\n\n},{\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"inwRV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Loading extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'loading';\n (0, _utils.append)(art.template.$loading, art.icons.loading);\n }\n}\nexports.default = Loading;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iAojr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Notice {\n constructor(art){\n this.art = art;\n this.timer = null;\n }\n set show(msg) {\n const { constructor, template: { $player, $noticeInner } } = this.art;\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n (0, _utils.addClass)($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n $noticeInner.innerText = '';\n (0, _utils.removeClass)($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else (0, _utils.removeClass)($player, 'art-notice-show');\n }\n}\nexports.default = Notice;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4ZuYu\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Mask extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'mask';\n const { template, icons, events } = art;\n const $state = (0, _utils.append)(template.$state, icons.state);\n const $error = (0, _utils.append)(template.$state, icons.error);\n (0, _utils.setStyle)($error, 'display', 'none');\n art.on('destroy', ()=>{\n (0, _utils.setStyle)($state, 'display', 'none');\n (0, _utils.setStyle)($error, 'display', null);\n });\n events.proxy(template.$state, 'click', ()=>art.play());\n }\n}\nexports.default = Mask;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aEpTt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _loadingSvg = require(\"bundle-text:./loading.svg\");\nvar _loadingSvgDefault = parcelHelpers.interopDefault(_loadingSvg);\nvar _stateSvg = require(\"bundle-text:./state.svg\");\nvar _stateSvgDefault = parcelHelpers.interopDefault(_stateSvg);\nvar _checkSvg = require(\"bundle-text:./check.svg\");\nvar _checkSvgDefault = parcelHelpers.interopDefault(_checkSvg);\nvar _playSvg = require(\"bundle-text:./play.svg\");\nvar _playSvgDefault = parcelHelpers.interopDefault(_playSvg);\nvar _pauseSvg = require(\"bundle-text:./pause.svg\");\nvar _pauseSvgDefault = parcelHelpers.interopDefault(_pauseSvg);\nvar _volumeSvg = require(\"bundle-text:./volume.svg\");\nvar _volumeSvgDefault = parcelHelpers.interopDefault(_volumeSvg);\nvar _volumeCloseSvg = require(\"bundle-text:./volume-close.svg\");\nvar _volumeCloseSvgDefault = parcelHelpers.interopDefault(_volumeCloseSvg);\nvar _screenshotSvg = require(\"bundle-text:./screenshot.svg\");\nvar _screenshotSvgDefault = parcelHelpers.interopDefault(_screenshotSvg);\nvar _settingSvg = require(\"bundle-text:./setting.svg\");\nvar _settingSvgDefault = parcelHelpers.interopDefault(_settingSvg);\nvar _arrowLeftSvg = require(\"bundle-text:./arrow-left.svg\");\nvar _arrowLeftSvgDefault = parcelHelpers.interopDefault(_arrowLeftSvg);\nvar _arrowRightSvg = require(\"bundle-text:./arrow-right.svg\");\nvar _arrowRightSvgDefault = parcelHelpers.interopDefault(_arrowRightSvg);\nvar _playbackRateSvg = require(\"bundle-text:./playback-rate.svg\");\nvar _playbackRateSvgDefault = parcelHelpers.interopDefault(_playbackRateSvg);\nvar _aspectRatioSvg = require(\"bundle-text:./aspect-ratio.svg\");\nvar _aspectRatioSvgDefault = parcelHelpers.interopDefault(_aspectRatioSvg);\nvar _configSvg = require(\"bundle-text:./config.svg\");\nvar _configSvgDefault = parcelHelpers.interopDefault(_configSvg);\nvar _pipSvg = require(\"bundle-text:./pip.svg\");\nvar _pipSvgDefault = parcelHelpers.interopDefault(_pipSvg);\nvar _lockSvg = require(\"bundle-text:./lock.svg\");\nvar _lockSvgDefault = parcelHelpers.interopDefault(_lockSvg);\nvar _unlockSvg = require(\"bundle-text:./unlock.svg\");\nvar _unlockSvgDefault = parcelHelpers.interopDefault(_unlockSvg);\nvar _fullscreenOffSvg = require(\"bundle-text:./fullscreen-off.svg\");\nvar _fullscreenOffSvgDefault = parcelHelpers.interopDefault(_fullscreenOffSvg);\nvar _fullscreenOnSvg = require(\"bundle-text:./fullscreen-on.svg\");\nvar _fullscreenOnSvgDefault = parcelHelpers.interopDefault(_fullscreenOnSvg);\nvar _fullscreenWebOffSvg = require(\"bundle-text:./fullscreen-web-off.svg\");\nvar _fullscreenWebOffSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOffSvg);\nvar _fullscreenWebOnSvg = require(\"bundle-text:./fullscreen-web-on.svg\");\nvar _fullscreenWebOnSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOnSvg);\nvar _switchOnSvg = require(\"bundle-text:./switch-on.svg\");\nvar _switchOnSvgDefault = parcelHelpers.interopDefault(_switchOnSvg);\nvar _switchOffSvg = require(\"bundle-text:./switch-off.svg\");\nvar _switchOffSvgDefault = parcelHelpers.interopDefault(_switchOffSvg);\nvar _flipSvg = require(\"bundle-text:./flip.svg\");\nvar _flipSvgDefault = parcelHelpers.interopDefault(_flipSvg);\nvar _errorSvg = require(\"bundle-text:./error.svg\");\nvar _errorSvgDefault = parcelHelpers.interopDefault(_errorSvg);\nvar _closeSvg = require(\"bundle-text:./close.svg\");\nvar _closeSvgDefault = parcelHelpers.interopDefault(_closeSvg);\nvar _airplaySvg = require(\"bundle-text:./airplay.svg\");\nvar _airplaySvgDefault = parcelHelpers.interopDefault(_airplaySvg);\nclass Icons {\n constructor(art){\n const icons = {\n loading: (0, _loadingSvgDefault.default),\n state: (0, _stateSvgDefault.default),\n play: (0, _playSvgDefault.default),\n pause: (0, _pauseSvgDefault.default),\n check: (0, _checkSvgDefault.default),\n volume: (0, _volumeSvgDefault.default),\n volumeClose: (0, _volumeCloseSvgDefault.default),\n screenshot: (0, _screenshotSvgDefault.default),\n setting: (0, _settingSvgDefault.default),\n pip: (0, _pipSvgDefault.default),\n arrowLeft: (0, _arrowLeftSvgDefault.default),\n arrowRight: (0, _arrowRightSvgDefault.default),\n playbackRate: (0, _playbackRateSvgDefault.default),\n aspectRatio: (0, _aspectRatioSvgDefault.default),\n config: (0, _configSvgDefault.default),\n lock: (0, _lockSvgDefault.default),\n flip: (0, _flipSvgDefault.default),\n unlock: (0, _unlockSvgDefault.default),\n fullscreenOff: (0, _fullscreenOffSvgDefault.default),\n fullscreenOn: (0, _fullscreenOnSvgDefault.default),\n fullscreenWebOff: (0, _fullscreenWebOffSvgDefault.default),\n fullscreenWebOn: (0, _fullscreenWebOnSvgDefault.default),\n switchOn: (0, _switchOnSvgDefault.default),\n switchOff: (0, _switchOffSvgDefault.default),\n error: (0, _errorSvgDefault.default),\n close: (0, _closeSvgDefault.default),\n airplay: (0, _airplaySvgDefault.default),\n ...art.option.icons\n };\n for(const key in icons)(0, _utils.def)(this, key, {\n get: ()=>(0, _utils.getIcon)(key, icons[key])\n });\n }\n}\nexports.default = Icons;\n\n},{\"../utils\":\"2zmtQ\",\"bundle-text:./loading.svg\":\"hvcIK\",\"bundle-text:./state.svg\":\"lvrOo\",\"bundle-text:./check.svg\":\"dEWuy\",\"bundle-text:./play.svg\":\"bIRRL\",\"bundle-text:./pause.svg\":\"8qmIt\",\"bundle-text:./volume.svg\":\"d1KXb\",\"bundle-text:./volume-close.svg\":\"6M8TS\",\"bundle-text:./screenshot.svg\":\"1GD8Z\",\"bundle-text:./setting.svg\":\"jmLr7\",\"bundle-text:./arrow-left.svg\":\"8ACXK\",\"bundle-text:./arrow-right.svg\":\"eUczZ\",\"bundle-text:./playback-rate.svg\":\"cYmA3\",\"bundle-text:./aspect-ratio.svg\":\"8l32s\",\"bundle-text:./config.svg\":\"8Erz8\",\"bundle-text:./pip.svg\":\"gx5TO\",\"bundle-text:./lock.svg\":\"7IJRz\",\"bundle-text:./unlock.svg\":\"dBJfA\",\"bundle-text:./fullscreen-off.svg\":\"84gJT\",\"bundle-text:./fullscreen-on.svg\":\"eGYQU\",\"bundle-text:./fullscreen-web-off.svg\":\"aGs9s\",\"bundle-text:./fullscreen-web-on.svg\":\"1r85n\",\"bundle-text:./switch-on.svg\":\"fNd7D\",\"bundle-text:./switch-off.svg\":\"eCzDs\",\"bundle-text:./flip.svg\":\"84k5P\",\"bundle-text:./error.svg\":\"lMJEW\",\"bundle-text:./close.svg\":\"4Kq91\",\"bundle-text:./airplay.svg\":\"a7OND\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hvcIK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lvrOo\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dEWuy\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"bIRRL\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8qmIt\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"d1KXb\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"6M8TS\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1GD8Z\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"jmLr7\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8ACXK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eUczZ\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"cYmA3\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8l32s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8Erz8\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"gx5TO\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"7IJRz\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dBJfA\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84gJT\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eGYQU\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"aGs9s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1r85n\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"fNd7D\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eCzDs\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84k5P\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lMJEW\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"4Kq91\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"a7OND\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"9Bz5C\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _subtitleOffset = require(\"./subtitleOffset\");\nvar _subtitleOffsetDefault = parcelHelpers.interopDefault(_subtitleOffset);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _utils = require(\"../utils\");\nclass Setting extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, controls, template: { $setting } } = art;\n this.name = 'setting';\n this.$parent = $setting;\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [\n ...this.builtin,\n ...option.settings\n ];\n if (option.setting) {\n this.format();\n this.render();\n art.on('blur', ()=>{\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n art.on('focus', (event)=>{\n const isControl = (0, _utils.includeFromEvent)(event, controls.setting);\n const isSetting = (0, _utils.includeFromEvent)(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n art.on('resize', ()=>this.resize());\n }\n }\n get builtin() {\n const result = [];\n const { option } = this.art;\n if (option.playbackRate) result.push((0, _playbackRateDefault.default)(this.art));\n if (option.aspectRatio) result.push((0, _aspectRatioDefault.default)(this.art));\n if (option.flip) result.push((0, _flipDefault.default)(this.art));\n if (option.subtitleOffset) result.push((0, _subtitleOffsetDefault.default)(this.art));\n return result;\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) this.traverse.call(this, callback, item.selector);\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) (0, _utils.inverseClass)(item.$item, 'art-current');\n }, target.$option);\n this.render(target.$parents);\n }\n format(option = this.option, parent, parents, names = []) {\n for(let index = 0; index < option.length; index++){\n const item = option[index];\n if (item?.name) {\n (0, _utils.errorHandle)(!names.includes(item.name), `The [${item.name}] already exists in [setting]`);\n names.push(item.name);\n } else item.name = `setting-${this.id++}`;\n if (!item.$formatted) {\n (0, _utils.def)(item, '$parent', {\n get: ()=>parent\n });\n (0, _utils.def)(item, '$parents', {\n get: ()=>parents\n });\n (0, _utils.def)(item, '$option', {\n get: ()=>option\n });\n const $events = [];\n (0, _utils.def)(item, '$events', {\n get: ()=>$events\n });\n (0, _utils.def)(item, '$formatted', {\n get: ()=>true\n });\n }\n this.format(item.selector || [], item, option, names);\n }\n this.option = option;\n }\n find(name = '') {\n let result = null;\n this.traverse((item)=>{\n if (item.name === name) result = item;\n });\n return result;\n }\n resize() {\n const { controls, constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT }, template: { $player, $setting } } = this.art;\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = (0, _utils.getRect)(controls.setting);\n const { left: playerLeft, width: playerWidth } = (0, _utils.getRect)($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n const settingHeight = this.active === this.option ? this.active.length * SETTING_ITEM_HEIGHT : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n (0, _utils.setStyle)($setting, 'height', `${settingHeight}px`);\n (0, _utils.setStyle)($setting, 'width', `${settingWidth}px`);\n if (this.art.isRotate || (0, _utils.isMobile)) return;\n if (settingLeft + settingWidth > playerWidth) {\n (0, _utils.setStyle)($setting, 'left', null);\n (0, _utils.setStyle)($setting, 'right', null);\n } else {\n (0, _utils.setStyle)($setting, 'left', `${settingLeft}px`);\n (0, _utils.setStyle)($setting, 'right', 'auto');\n }\n }\n }\n inactivate(item) {\n for(let index = 0; index < item.$events.length; index++)this.art.events.remove(item.$events[index]);\n item.$events.length = 0;\n }\n remove(name) {\n const item = this.find(name);\n (0, _utils.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) (0, _utils.remove)(item.$item);\n this.render();\n }\n update(target) {\n const item = this.find(target.name);\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 return this.add(target);\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 createHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const { proxy, icons: { arrowLeft }, constructor: { SETTING_ITEM_HEIGHT } } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.setStyle)($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.addClass)($item, 'art-setting-item-back');\n const $left = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n (0, _utils.append)($icon, arrowLeft);\n (0, _utils.append)($left, $icon);\n (0, _utils.append)($left, item.$parent.html);\n const event = proxy($item, 'click', ()=>this.render(item.$parents));\n item.$parent.$events.push(event);\n (0, _utils.append)($panel, $item);\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 let type = 'selector';\n if ((0, _utils.has)(item, 'switch')) type = 'switch';\n if ((0, _utils.has)(item, 'range')) type = 'range';\n if ((0, _utils.has)(item, 'onClick')) type = 'button';\n const { icons, proxy, constructor } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.setStyle)($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n const $left = (0, _utils.append)($item, '
');\n const $right = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n switch(type){\n case 'button':\n case 'switch':\n case 'range':\n (0, _utils.append)($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) (0, _utils.append)($icon, item.icon || icons.config);\n else (0, _utils.append)($icon, icons.check);\n break;\n default:\n break;\n }\n (0, _utils.append)($left, $icon);\n (0, _utils.def)(item, '$icon', {\n configurable: true,\n get: ()=>$icon\n });\n (0, _utils.def)(item, 'icon', {\n configurable: true,\n get () {\n return $icon.innerHTML;\n },\n set (value) {\n $icon.innerHTML = '';\n (0, _utils.append)($icon, value);\n }\n });\n const $html = (0, _utils.createElement)('div');\n (0, _utils.addClass)($html, 'art-setting-item-left-text');\n (0, _utils.append)($html, item.html || '');\n (0, _utils.append)($left, $html);\n (0, _utils.def)(item, '$html', {\n configurable: true,\n get: ()=>$html\n });\n (0, _utils.def)(item, 'html', {\n configurable: true,\n get () {\n return $html.innerHTML;\n },\n set (value) {\n $html.innerHTML = '';\n (0, _utils.append)($html, value);\n }\n });\n const $tooltip = (0, _utils.createElement)('div');\n (0, _utils.addClass)($tooltip, 'art-setting-item-right-tooltip');\n (0, _utils.append)($tooltip, item.tooltip || '');\n (0, _utils.append)($right, $tooltip);\n (0, _utils.def)(item, '$tooltip', {\n configurable: true,\n get: ()=>$tooltip\n });\n (0, _utils.def)(item, 'tooltip', {\n configurable: true,\n get () {\n return $tooltip.innerHTML;\n },\n set (value) {\n $tooltip.innerHTML = '';\n (0, _utils.append)($tooltip, value);\n }\n });\n switch(type){\n case 'switch':\n {\n const $switch = (0, _utils.createElement)('div');\n (0, _utils.addClass)($switch, 'art-setting-item-right-icon');\n const $switchOn = (0, _utils.append)($switch, icons.switchOn);\n const $switchOff = (0, _utils.append)($switch, icons.switchOff);\n (0, _utils.setStyle)(item.switch ? $switchOff : $switchOn, 'display', 'none');\n (0, _utils.append)($right, $switch);\n (0, _utils.def)(item, '$switch', {\n configurable: true,\n get: ()=>$switch\n });\n let $switchValue = item.switch;\n (0, _utils.def)(item, 'switch', {\n configurable: true,\n get: ()=>$switchValue,\n set (value) {\n $switchValue = value;\n if (value) {\n (0, _utils.setStyle)($switchOff, 'display', 'none');\n (0, _utils.setStyle)($switchOn, 'display', null);\n } else {\n (0, _utils.setStyle)($switchOff, 'display', null);\n (0, _utils.setStyle)($switchOn, 'display', 'none');\n }\n }\n });\n break;\n }\n case 'range':\n {\n const $state = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n const $range = (0, _utils.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 (0, _utils.addClass)($range, 'art-setting-range');\n (0, _utils.append)($right, $state);\n (0, _utils.def)(item, '$range', {\n configurable: true,\n get: ()=>$range\n });\n let $rangeValue = [\n ...item.range\n ];\n (0, _utils.def)(item, 'range', {\n configurable: true,\n get: ()=>$rangeValue,\n set (value) {\n $rangeValue = [\n ...value\n ];\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 = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n (0, _utils.append)($state, icons.arrowRight);\n (0, _utils.append)($right, $state);\n }\n break;\n default:\n break;\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 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 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 case 'selector':\n {\n const event = proxy($item, 'click', async (event)=>{\n if (item.selector?.length) this.render(item.selector);\n else {\n this.check(item);\n if (item.$parent.onSelect) item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n });\n item.$events.push(event);\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n }\n break;\n case 'button':\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 break;\n default:\n break;\n }\n (0, _utils.def)(item, '$item', {\n configurable: true,\n get: ()=>$item\n });\n if (isUpdate) (0, _utils.replaceElement)($item, oldItem);\n else (0, _utils.append)($panel, $item);\n if (item.mounted) setTimeout(()=>item.mounted.call(this.art, item.$item, item), 0);\n }\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n (0, _utils.inverseClass)($panel, 'art-current');\n } else {\n const $panel = (0, _utils.createElement)('div');\n this.cache.set(option, $panel);\n (0, _utils.addClass)($panel, 'art-setting-panel');\n (0, _utils.append)(this.$parent, $panel);\n (0, _utils.inverseClass)($panel, 'art-current');\n if (option[0]?.$parent) this.createHeader(option[0]);\n for(let index = 0; index < option.length; index++)this.createItem(option[index]);\n }\n this.resize();\n }\n}\nexports.default = Setting;\n\n},{\"./flip\":\"8Xlqq\",\"./aspectRatio\":\"g0rEm\",\"./playbackRate\":\"p1PC0\",\"./subtitleOffset\":\"3ybiM\",\"../utils/component\":\"euCTd\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8Xlqq\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, FLIP } } = art;\n function getI18n(value) {\n return i18n.get((0, _utils.capitalize)(value));\n }\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"g0rEm\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nfunction aspectRatio(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO } } = art;\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"p1PC0\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nfunction playbackRate(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE } } = art;\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3ybiM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffset);\nfunction subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\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: [\n 0,\n -10,\n 10,\n 0.1\n ],\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ly2Yz\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Storage {\n constructor(){\n this.name = 'artplayer_settings';\n this.settings = {};\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 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 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 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}\nexports.default = Storage;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"enDIw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _miniProgressBar = require(\"./miniProgressBar\");\nvar _miniProgressBarDefault = parcelHelpers.interopDefault(_miniProgressBar);\nvar _autoOrientation = require(\"./autoOrientation\");\nvar _autoOrientationDefault = parcelHelpers.interopDefault(_autoOrientation);\nvar _autoPlayback = require(\"./autoPlayback\");\nvar _autoPlaybackDefault = parcelHelpers.interopDefault(_autoPlayback);\nvar _fastForward = require(\"./fastForward\");\nvar _fastForwardDefault = parcelHelpers.interopDefault(_fastForward);\nvar _lock = require(\"./lock\");\nvar _lockDefault = parcelHelpers.interopDefault(_lock);\nclass Plugins {\n constructor(art){\n this.art = art;\n this.id = 0;\n const { option } = art;\n if (option.miniProgressBar && !option.isLive) this.add((0, _miniProgressBarDefault.default));\n if (option.lock && (0, _utils.isMobile)) this.add((0, _lockDefault.default));\n if (option.autoPlayback && !option.isLive) this.add((0, _autoPlaybackDefault.default));\n if (option.autoOrientation && (0, _utils.isMobile)) this.add((0, _autoOrientationDefault.default));\n if (option.fastForward && (0, _utils.isMobile) && !option.isLive) this.add((0, _fastForwardDefault.default));\n for(let index = 0; index < option.plugins.length; index++)this.add(option.plugins[index]);\n }\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n if (result instanceof Promise) return result.then((res)=>this.next(plugin, res));\n else return this.next(plugin, result);\n }\n next(plugin, result) {\n const pluginName = result && result.name || plugin.name || `plugin${this.id}`;\n (0, _utils.errorHandle)(!(0, _utils.has)(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n (0, _utils.def)(this, pluginName, {\n value: result\n });\n return this;\n }\n}\nexports.default = Plugins;\n\n},{\"../utils\":\"2zmtQ\",\"./miniProgressBar\":\"dtvsV\",\"./autoOrientation\":\"aMOBX\",\"./autoPlayback\":\"kqk6e\",\"./fastForward\":\"Rwbar\",\"./lock\":\"cmd59\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dtvsV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniProgressBar);\nvar _utils = require(\"../utils\");\nfunction miniProgressBar(art) {\n art.on('control', (state)=>{\n if (state) (0, _utils.removeClass)(art.template.$player, 'art-mini-progress-bar');\n else (0, _utils.addClass)(art.template.$player, 'art-mini-progress-bar');\n });\n return {\n name: 'mini-progress-bar'\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aMOBX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoOrientation);\nvar _utils = require(\"../utils\");\nfunction autoOrientation(art) {\n const { constructor, template: { $player, $video } } = art;\n art.on('fullscreenWeb', (state)=>{\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(()=>{\n (0, _utils.setStyle)($player, 'width', `${viewHeight}px`);\n (0, _utils.setStyle)($player, 'height', `${viewWidth}px`);\n (0, _utils.setStyle)($player, 'transform-origin', '0 0');\n (0, _utils.setStyle)($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n (0, _utils.addClass)($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation')) {\n (0, _utils.removeClass)($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n });\n art.on('fullscreen', async (state)=>{\n if (!screen?.orientation?.lock) return;\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n (0, _utils.addClass)($player, 'art-auto-orientation-fullscreen');\n }\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n (0, _utils.removeClass)($player, 'art-auto-orientation-fullscreen');\n }\n });\n return {\n name: 'autoOrientation',\n get state () {\n return (0, _utils.hasClass)($player, 'art-auto-orientation');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kqk6e\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoPlayback);\nvar _utils = require(\"../utils\");\nfunction autoPlayback(art) {\n const { i18n, icons, storage, constructor, proxy, template: { $poster } } = art;\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `\n });\n const $last = (0, _utils.query)('.art-auto-playback-last', $autoPlayback);\n const $jump = (0, _utils.query)('.art-auto-playback-jump', $autoPlayback);\n const $close = (0, _utils.query)('.art-auto-playback-close', $autoPlayback);\n (0, _utils.append)($close, icons.close);\n let timer = null;\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) delete times[keys[0]];\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n clearTimeout(timer);\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n (0, _utils.setStyle)($autoPlayback, 'display', 'flex');\n $last.innerText = `${i18n.get('Last Seen')} ${(0, _utils.secondToTime)(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n proxy($close, 'click', ()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n proxy($jump, 'click', ()=>{\n art.seek = currentTime;\n art.play();\n (0, _utils.setStyle)($poster, 'display', 'none');\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n art.once('video:timeupdate', ()=>{\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n art.on('ready', init);\n art.on('restart', init);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"Rwbar\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fastForward);\nvar _utils = require(\"../utils\");\nfunction fastForward(art) {\n const { constructor, proxy, template: { $player, $video } } = art;\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n const onStart = (event)=>{\n if (event.touches.length === 1 && art.playing && !art.isLock) timer = setTimeout(()=>{\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n (0, _utils.addClass)($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n };\n const onStop = ()=>{\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n (0, _utils.removeClass)($player, 'art-fast-forward');\n }\n };\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n return {\n name: 'fastForward',\n get state () {\n return (0, _utils.hasClass)($player, 'art-fast-forward');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cmd59\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>lock);\nvar _utils = require(\"../utils\");\nfunction lock(art) {\n const { layers, icons, template: { $player } } = art;\n function getState() {\n return (0, _utils.hasClass)($player, 'art-lock');\n }\n function setLock() {\n (0, _utils.addClass)($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n function setUnlock() {\n (0, _utils.removeClass)($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\n layers.add({\n name: 'lock',\n mounted ($el) {\n const $lock = (0, _utils.append)($el, icons.lock);\n const $unlock = (0, _utils.append)($el, icons.unlock);\n (0, _utils.setStyle)($lock, 'display', 'none');\n art.on('lock', (state)=>{\n if (state) {\n (0, _utils.setStyle)($lock, 'display', 'inline-flex');\n (0, _utils.setStyle)($unlock, 'display', 'none');\n } else {\n (0, _utils.setStyle)($lock, 'display', 'none');\n (0, _utils.setStyle)($unlock, 'display', 'inline-flex');\n }\n });\n },\n click () {\n if (getState()) setUnlock();\n else setLock();\n }\n });\n return {\n name: 'lock',\n get state () {\n return getState();\n },\n set state (value){\n if (value) setLock();\n else setUnlock();\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}]},[\"4omrA\"], \"4omrA\", \"parcelRequireb749\", {})\nlet {default: _default, } = parcelRequireb749(\"4omrA\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import { version } from '../package.json';\nimport 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 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 version;\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","{\n \"license\": \"MIT\",\n \"name\": \"artplayer\",\n \"version\": \"5.2.5\",\n \"main\": \"dist/artplayer.js\",\n \"legacy\": \"dist/artplayer.legacy.js\",\n \"types\": \"types/artplayer.d.ts\",\n \"homepage\": \"https://artplayer.org\",\n \"author\": \"Harvey Zack \",\n \"browserslist\": \"last 1 Chrome version\",\n \"description\": \"ArtPlayer.js is a modern and full featured HTML5 video player\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/zhw2590582/ArtPlayer.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/zhw2590582/ArtPlayer/issues\"\n },\n \"keywords\": [\n \"html5\",\n \"video\",\n \"player\"\n ],\n \"dependencies\": {\n \"option-validator\": \"^2.0.6\"\n }\n}","module.exports = \"3f6ec9ee3af91a27\";","!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 { version } from '../package.json';\nimport { 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
${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 (typeof top === 'number' && typeof left === 'number') {\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","import { version } from '../../package.json';\n\nexport default function (option) {\n return {\n ...option,\n html: `ArtPlayer ${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 = \"79356f8a9eaedcd3\";","module.exports = \"9b8da831195a0296\";","module.exports = \"fefbfac2b4688a15\";","module.exports = \"1c2f0d275a3e6c14\";","module.exports = \"0f0db61f72c3e5d7\";","module.exports = \"8bc480c9256a1b55\";","module.exports = \"02a59ee0095ec3a9\";","module.exports = \"933bfb2aaa61ebcc\";","module.exports = \"d8947f3fc30104b7\";","module.exports = \"6f55837680f4a829\";","module.exports = \"9d31a30750a7cb4b\";","module.exports = \"0000856937620744\";","module.exports = \"ff1d4e50282a344a\";","module.exports = \"9813d2a46ceed07c\";","module.exports = \"b57bb39e41ccb640\";","module.exports = \"7fb917337b416149\";","module.exports = \"b2dac719b3f940e4\";","module.exports = \"789dab71a67d9e3d\";","module.exports = \"50bc39a19ece62a6\";","module.exports = \"4cd5fe480df753c8\";","module.exports = \"5e79755fabb04f07\";","module.exports = \"20b111129b61a679\";","module.exports = \"e24e6a114fe8d011\";","module.exports = \"cdfad49422dff32c\";","module.exports = \"269ca28002b4a2e4\";","module.exports = \"bffe06d8410d947f\";","module.exports = \"a85d72ae7ad1ec63\";","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}] already exists 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":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","_packageJson","_indexLess","_indexLessDefault","interopDefault","_optionValidator","_optionValidatorDefault","_emitter","_emitterDefault","_utils","_scheme","_schemeDefault","_config","_configDefault","_template","_templateDefault","_i18N","_i18NDefault","_player","_playerDefault","_control","_controlDefault","_contextmenu","_contextmenuDefault","_info","_infoDefault","_subtitle","_subtitleDefault","_events","_eventsDefault","_hotkey","_hotkeyDefault","_layer","_layerDefault","_loading","_loadingDefault","_notice","_noticeDefault","_mask","_maskDefault","_icons","_iconsDefault","_setting","_settingDefault","_storage","_storageDefault","_plugins","_pluginsDefault","instances","Artplayer","default","constructor","option","readyCallback","mergeOption","mergeDeep","container","isLock","isReady","isFocus","isInput","isRotate","isDestroy","template","events","storage","icons","i18n","notice","player","layers","controls","contextmenu","subtitle","info","loading","hotkey","mask","setting","plugins","on","DEBUG","log","msg","console","version","index","event","type","push","config","utils","scheme","Emitter","validator","kindOf","html","url","poster","theme","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","playbackRate","aspectRatio","screenshot","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","useSSR","playsInline","lock","gesture","fastForward","autoPlayback","autoOrientation","airplay","proxy","undefined","settings","quality","highlight","thumbnails","number","column","width","height","scale","style","escape","encoding","onVttLoad","vtt","moreVideoAttr","preload","isSafari","cssVar","customType","lang","navigator","language","toLowerCase","query","video","$video","destroy","removeHtml","splice","indexOf","emit","STYLE","CONTEXTMENU","NOTICE_TIME","SETTING_WIDTH","SETTING_ITEM_WIDTH","SETTING_ITEM_HEIGHT","RESIZE_TIME","SCROLL_TIME","SCROLL_GAP","AUTO_PLAYBACK_MAX","AUTO_PLAYBACK_MIN","AUTO_PLAYBACK_TIMEOUT","RECONNECT_TIME_MAX","RECONNECT_SLEEP_TIME","CONTROL_HIDE_TIME","DBCLICK_TIME","DBCLICK_FULLSCREEN","MOBILE_DBCLICK_PLAY","MOBILE_CLICK_PLAY","AUTO_ORIENTATION_TIME","INFO_LOOP_TIME","FAST_FORWARD_VALUE","FAST_FORWARD_TIME","TOUCH_MOVE_RATIO","VOLUME_STEP","SEEK_STEP","PLAYBACK_RATE","ASPECT_RATIO","FLIP","FULLSCREEN_WEB_IN_BODY","LOG_VERSION","USE_RAF","isBrowser","setStyleText","setTimeout","JSON","parse","t","e","r","Symbol","iterator","prototype","n","toString","c","o","Array","isArray","isBuffer","callee","message","Date","toDateString","getDate","setDate","stackTraceLimit","RegExp","flags","ignoreCase","multiline","throw","return","next","slice","replace","f","arguments","s","y","a","u","concat","join","keys","forEach","split","map","trim","filter","Boolean","some","fn","ctx","once","listener","args","off","apply","_","data","evtArr","callback","evts","liveEvents","len","__esModule","value","exportAll","source","dest","key","hasOwnProperty","enumerable","export","destName","_dom","_error","_file","_property","_time","_format","_compatibility","queryAll","addClass","removeClass","hasClass","append","remove","setStyle","setStyles","getStyle","siblings","inverseClass","tooltip","isInViewport","includeFromEvent","replaceElement","createElement","getIcon","supportsFlex","getRect","loadImg","selector","document","querySelector","from","querySelectorAll","target","className","classList","add","contains","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","element","styles","numberType","getComputedStyle","getPropertyValue","parseFloat","parentElement","children","item","pos","isMobile","setAttribute","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","horInView","left","composedPath","newChild","oldChild","replaceChild","tag","icon","$style","getElementById","readyState","addEventListener","head","textContent","div","display","Promise","reject","img","Image","onload","canvas","getContext","drawImage","toBlob","blob","blobUrl","URL","createObjectURL","scaledImg","onerror","revokeObjectURL","src","userAgent","isWechat","isIE","isAndroid","isIOS","isIOS13","CUSTOM_USER_AGENT","test","MSStream","includes","maxTouchPoints","ArtPlayerError","errorHandle","context","captureStackTrace","condition","srtToVtt","srtText","fixSrt","srt","$1","$2","ms","vttToBlob","vttText","Blob","assToVtt","ass","reAss","fixTime","time","arr","line","m","match","start","end","text","download","elink","href","body","click","getExt","pop","def","has","objects","isObject","reduce","prev","obj","pVal","oVal","getOwnPropertyDescriptor","sleep","debounce","func","duration","timeout","clearTimeout","throttle","shouldWait","clamp","num","b","Math","max","min","capitalize","str","charAt","toUpperCase","secondToTime","second","hour","floor","sec","unescape","reg","ComponentOption","validElement","paths","disable","mounted","onSelect","switch","onSwitch","range","onRange","onChange","position","properties","methods","prototypes","Template","art","$container","tagName","every","ins","dataset","artId","init","innerHTML","$player","$track","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsCenter","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$info","$infoPanel","$infoClose","$contextmenu","HTMLVideoElement","HTMLCanvasElement","_zhCn","_zhCnDefault","languages","update","zhCn","Close","Volume","Play","Pause","Rate","Mute","Horizontal","Vertical","Reconnect","Screenshot","Default","Normal","Open","Fullscreen","AirPlay","_urlMix","_urlMixDefault","_attrMix","_attrMixDefault","_playMix","_playMixDefault","_pauseMix","_pauseMixDefault","_toggleMix","_toggleMixDefault","_seekMix","_seekMixDefault","_volumeMix","_volumeMixDefault","_currentTimeMix","_currentTimeMixDefault","_durationMix","_durationMixDefault","_switchMix","_switchMixDefault","_playbackRateMix","_playbackRateMixDefault","_aspectRatioMix","_aspectRatioMixDefault","_screenshotMix","_screenshotMixDefault","_fullscreenMix","_fullscreenMixDefault","_fullscreenWebMix","_fullscreenWebMixDefault","_pipMix","_pipMixDefault","_loadedMix","_loadedMixDefault","_playedMix","_playedMixDefault","_playingMix","_playingMixDefault","_autoSizeMix","_autoSizeMixDefault","_rectMix","_rectMixDefault","_flipMix","_flipMixDefault","_miniMix","_miniMixDefault","_posterMix","_posterMixDefault","_autoHeightMix","_autoHeightMixDefault","_cssVarMix","_cssVarMixDefault","_themeMix","_themeMixDefault","_typeMix","_typeMixDefault","_stateMix","_stateMixDefault","_subtitleOffsetMix","_subtitleOffsetMixDefault","_airplayMix","_airplayMixDefault","_qualityMix","_qualityMixDefault","_thumbnailsMix","_thumbnailsMixDefault","_optionInit","_optionInitDefault","_eventInit","_eventInitDefault","urlMix","set","newUrl","oldUrl","typeName","typeCallback","show","attrMix","playMix","result","play","instance","pause","pauseMix","toggleMix","playing","seekMix","currentTime","seek","volumeMix","percentage","parseInt","currentTimeMix","Number","isNaN","durationMix","Infinity","switchMix","switchUrl","playbackRateMix","rate","aspectRatioMix","ratio","ratioArray","setupRatio","playerRatio","screenshotMix","$canvas","videoWidth","videoHeight","toDataURL","dataUri","getDataURL","fileName","fullscreenMix","_screenfull","_screenfullDefault","nativeScreenfull","isFullscreen","state","request","exit","webkitScreenfull","fullscreenElement","webkitEnterFullscreen","webkitExitFullscreen","isEnabled","webkitSupportsFullscreen","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","options","onFullScreenEntered","returnPromise","requestFullscreen","then","catch","onFullScreenExit","exitFullscreen","toggle","onchange","eventName","removeEventListener","raw","defineProperties","fullscreenEnabled","fullscreenWebMix","cssText","pipMix","pictureInPictureEnabled","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitSupportsPresentationMode","webkitPip","webkitSetPresentationMode","webkitPresentationMode","loadedMix","loadedTime","buffered","playedMix","playingMix","paused","ended","autoSizeMix","videoRatio","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","miniMix","isDragging","lastPageX","lastPageY","hideMini","$mini","prepend","initState","$play","$pause","initMini","createMini","$close","close","button","pageX","pageY","posterMix","autoHeightMix","cssVarMix","setProperty","themeMix","typeMix","stateMix","states","find","prop","subtitleOffsetMix","cues","cue","originalStartTime","startTime","originalEndTime","endTime","airplayMix","available","WebKitPlaybackTargetAvailabilityEvent","webkitShowPlaybackTargetPicker","availability","qualityMix","qualityDefault","marginRight","switchQuality","thumbnailsMix","timer","image","isLoad","isHover","hover","$thumbnails","isMobileDragging","showThumbnails","posWidth","width2","naturalWidth","height2","perIndex","yIndex","ceil","xIndex","optionInit","attr","volumeStorage","eventInit","reconnectTime","_component","_componentDefault","_fullscreen","_fullscreenDefault","_fullscreenWeb","_fullscreenWebDefault","_pip","_pipDefault","_playAndPause","_playAndPauseDefault","_progress","_progressDefault","_timeDefault","_volume","_volumeDefault","_screenshot","_screenshotDefault","_airplay","_airplayDefault","Control","now","getOption","$parent","check","$control_value","$control_option","$control_item","$ref","$value","innerText","$list","$item","path","Map","childs","nextChild","insertAdjacentElement","destroyEvent","preventDefault","beforeUnmount","delete","assign","$control","$fullscreenOn","fullscreenOn","$fullscreenOff","fullscreenOff","$fullscreenWebOn","fullscreenWebOn","$fullscreenWebOff","fullscreenWebOff","playAndPause","showPlay","showPause","getPosFromEvent","setCurrentTime","progress","eventLeft","touches","clientX","clientY","tipTimer","$hover","$loaded","$played","$highlight","$indicator","$tip","showTime","touch","tipWidth","indicator","played","loaded","showHighlight","fontSize","padding","cursor","getTime","newTime","$volume","volumeClose","$panel","$inner","$slider","$handle","getVolumeFromEvent","resize","_playbackRate","_playbackRateDefault","_aspectRatio","_aspectRatioDefault","_flip","_flipDefault","_version","_versionDefault","_close","_closeDefault","Contextmenu","mouseX","mouseY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","toFixed","$default","$current","Info","$types","Subtitle","lastState","webkitDisplayingFullscreen","createTrack","textTrack","textTracks","activeCues","newOption","subtitleOption","subUrl","kind","$newTrack","label","track","mode","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","vttNew","_clickInit","_clickInitDefault","_hoverInit","_hoverInitDefault","_moveInit","_moveInitDefault","_resizeInit","_resizeInitDefault","_gestureInit","_gestureInitDefault","_viewInit","_viewInitDefault","_documentInit","_documentInitDefault","_updateInit","_updateInitDefault","_restoreInit","_restoreInitDefault","destroyEvents","mouseenter","mouseleave","clickInit","clickTimes","clicks","hoverInit","moveInit","resizeInit","resizeFn","screen","orientation","gestureInit","touchTarget","startX","startY","onTouchStart","onTouchMove","direction","GetSlideDirection","endX","endY","dy","dx","abs","angle","atan2","PI","isHorizontal","isVertical","ratioX","ratioY","viewInit","scrollFn","mini","documentInit","updateInit","requestAnimationFrame","cancelAnimationFrame","restoreInit","backward","forward","activeElement","editable","getAttribute","altKey","ctrlKey","metaKey","shiftKey","Layer","Loading","Mask","$error","_loadingSvg","_loadingSvgDefault","_stateSvg","_stateSvgDefault","_checkSvg","_checkSvgDefault","_playSvg","_playSvgDefault","_pauseSvg","_pauseSvgDefault","_volumeSvg","_volumeSvgDefault","_volumeCloseSvg","_volumeCloseSvgDefault","_screenshotSvg","_screenshotSvgDefault","_settingSvg","_settingSvgDefault","_arrowLeftSvg","_arrowLeftSvgDefault","_arrowRightSvg","_arrowRightSvgDefault","_playbackRateSvg","_playbackRateSvgDefault","_aspectRatioSvg","_aspectRatioSvgDefault","_configSvg","_configSvgDefault","_pipSvg","_pipSvgDefault","_lockSvg","_lockSvgDefault","_unlockSvg","_unlockSvgDefault","_fullscreenOffSvg","_fullscreenOffSvgDefault","_fullscreenOnSvg","_fullscreenOnSvgDefault","_fullscreenWebOffSvg","_fullscreenWebOffSvgDefault","_fullscreenWebOnSvg","_fullscreenWebOnSvgDefault","_switchOnSvg","_switchOnSvgDefault","_switchOffSvg","_switchOffSvgDefault","_flipSvg","_flipSvgDefault","_errorSvg","_errorSvgDefault","_closeSvg","_closeSvgDefault","_airplaySvg","_airplaySvgDefault","arrowLeft","arrowRight","unlock","switchOn","switchOff","_subtitleOffset","_subtitleOffsetDefault","Setting","active","builtin","format","render","isControl","isSetting","traverse","$option","$parents","parents","names","$formatted","$events","settingWidth","controlLeft","controlWidth","playerLeft","playerWidth","settingLeft","settingHeight","inactivate","createItem","createHeader","$left","$icon","isUpdate","oldItem","$right","configurable","$html","$tooltip","$switch","$switchOn","$switchOff","$switchValue","$range","step","$rangeValue","valueAsNumber","onClick","getI18n","localStorage","getItem","setItem","stringify","del","clear","removeItem","_miniProgressBar","_miniProgressBarDefault","_autoOrientation","_autoOrientationDefault","_autoPlayback","_autoPlaybackDefault","_fastForward","_fastForwardDefault","_lock","_lockDefault","plugin","pluginName","viewWidth","viewHeight","lastOrientation","oppositeOrientation","startsWith","$autoPlayback","$last","$jump","times","isPress","lastPlaybackRate","onStop","getState","setLock","setUnlock","$el","$lock","$unlock","_default","parcelRequireb749"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/docs/compiled/artplayer.js b/docs/compiled/artplayer.js index ca4221f08..c234795b0 100644 --- a/docs/compiled/artplayer.js +++ b/docs/compiled/artplayer.js @@ -1,8 +1,8 @@ /*! - * artplayer.js v5.2.4 + * artplayer.js v5.2.5 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}G.push(this)}static get instances(){return G}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),G.splice(G.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"aQnLI","bundle-text:./style/index.less":"6KiDz","option-validator":"49gY0","./utils/emitter":"b0EdR","./utils":"gpvEP","./scheme":"bEi0U","./config":"eQRJX","./template":"dokTM","./i18n":"1bZfm","./player":"3xuL2","./control":"4zOCk","./contextmenu":"iAXzm","./info":"bFUCG","./subtitle":"lEARb","./events":"fpHt3","./hotkey":"9z96t","./layer":"e9ahx","./loading":"hlSVU","./notice":"eDyfI","./mask":"uwUok","./icons":"1F2QO","./setting":"aqPSH","./storage":"48Pli","./plugins":"eOOz3","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aQnLI:[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.4","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","module":"dist/artplayer.esm.js","types":"types/artplayer.d.ts","exports":{"import":"./dist/artplayer.esm.js","require":"./dist/artplayer.js","default":"./dist/artplayer.js"},"homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"6KiDz":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],"49gY0":[function(e,t,r,a){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>E),o.export(r,"getRect",()=>z),o.export(r,"loadImg",()=>$);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function E(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function z(e){return e.getBoundingClientRect()}function $(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"h19pd","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],h19pd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9OXL0":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dSV4f:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8Ue1J":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6OkQd":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"55T7g":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4YeYK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bEi0U:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eQRJX:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dokTM:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"aQnLI","./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1bZfm":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"gpvEP","./zh-cn":"kRuwK","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kRuwK:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3xuL2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),E=e("./playbackRateMix"),z=o.interopDefault(E),$=e("./aspectRatioMix"),I=o.interopDefault($),T=e("./screenshotMix"),M=o.interopDefault(T),F=e("./fullscreenMix"),P=o.interopDefault(F),C=e("./fullscreenWebMix"),D=o.interopDefault(C),A=e("./pipMix"),R=o.interopDefault(A),L=e("./loadedMix"),O=o.interopDefault(L),q=e("./playedMix"),_=o.interopDefault(q),H=e("./playingMix"),V=o.interopDefault(H),N=e("./autoSizeMix"),B=o.interopDefault(N),U=e("./rectMix"),Y=o.interopDefault(U),W=e("./flipMix"),K=o.interopDefault(W),Q=e("./miniMix"),X=o.interopDefault(Q),Z=e("./posterMix"),G=o.interopDefault(Z),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,z.default)(e),(0,I.default)(e),(0,M.default)(e),(0,P.default)(e),(0,D.default)(e),(0,R.default)(e),(0,O.default)(e),(0,_.default)(e),(0,V.default)(e),(0,B.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,X.default)(e),(0,G.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"hXrQD","./attrMix":"6pNgq","./playMix":"krR40","./pauseMix":"eFrQn","./toggleMix":"5mk0x","./seekMix":"kNVxo","./volumeMix":"j0CPw","./currentTimeMix":"3Qlk2","./durationMix":"ej83c","./switchMix":"4DKMC","./playbackRateMix":"3q2BJ","./aspectRatioMix":"kKNdy","./screenshotMix":"jEOGf","./fullscreenMix":"6fcMx","./fullscreenWebMix":"2fgOZ","./pipMix":"7ctTv","./loadedMix":"748cK","./playedMix":"2v3kJ","./playingMix":"7NTUH","./autoSizeMix":"lVqio","./rectMix":"i0rvQ","./flipMix":"f8acK","./miniMix":"htzAz","./posterMix":"iIy8c","./autoHeightMix":"4JyZb","./cssVarMix":"9iyPY","./themeMix":"7NNfU","./typeMix":"ipJQa","./stateMix":"6P1Bw","./subtitleOffsetMix":"eqBmH","./airplayMix":"etKzV","./qualityMix":"1CuDr","./thumbnailsMix":"63zKA","./optionInit":"cIuaY","./eventInit":"lqh1e","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],hXrQD:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6pNgq":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],krR40:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5mk0x":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kNVxo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j0CPw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3Qlk2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ej83c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4DKMC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3q2BJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kKNdy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],jEOGf:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6fcMx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"kQNoU","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kQNoU:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2fgOZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7ctTv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"748cK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2v3kJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NTUH":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lVqio:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],i0rvQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],f8acK:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],htzAz:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iIy8c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4JyZb":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9iyPY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NNfU":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ipJQa:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6P1Bw":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1CuDr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"63zKA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cIuaY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lqh1e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"eQRJX","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4zOCk":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),E=e("./airplay"),z=o.interopDefault(E),$=e("../utils");class I extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{$.isMobile||(this.show=!0)}),e.on("click",()=>{$.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,$.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,$.removeClass)(r,"art-hide-cursor"),(0,$.addClass)(r,"art-hover"),this.timer=Date.now()):((0,$.addClass)(r,"art-hide-cursor"),(0,$.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,$.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!$.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,z.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,$.def)(r,"$control_item",{get:()=>a}),(0,$.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=I},{"../utils/component":"j4qZZ","./fullscreen":"7juzt","./fullscreenWeb":"dukaq","./pip":"lt0U6","./playAndPause":"eyIIx","./progress":"2S7vj","./time":"bgLbI","./volume":"lA6hu","./setting":"cH3Og","./screenshot":"gGGQI","./airplay":"4TMBv","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j4qZZ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dukaq:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lt0U6:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eyIIx:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2S7vj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bgLbI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cH3Og:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],gGGQI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4TMBv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iAXzm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"gpvEP","../utils/component":"j4qZZ","./playbackRate":"9jior","./aspectRatio":"igCMy","./flip":"4eLts","./info":"kETiY","./version":"abcPF","./close":"aWF54","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9jior":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],igCMy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4eLts":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kETiY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],abcPF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"aQnLI","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aWF54:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bFUCG:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"gpvEP","./utils/component":"j4qZZ","option-validator":"49gY0","./scheme":"bEi0U","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],fpHt3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8qahy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5Eivu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"905Dr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8F0uv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"gpvEP","../control/progress":"2S7vj","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"26qSX":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9wES9":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cY9iQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3YYY5":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9z96t":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],uwUok:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"gpvEP","./utils/component":"j4qZZ","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1F2QO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),E=o.interopDefault(S),z=e("bundle-text:./arrow-right.svg"),$=o.interopDefault(z),I=e("bundle-text:./playback-rate.svg"),T=o.interopDefault(I),M=e("bundle-text:./aspect-ratio.svg"),F=o.interopDefault(M),P=e("bundle-text:./config.svg"),C=o.interopDefault(P),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),L=o.interopDefault(R),O=e("bundle-text:./unlock.svg"),q=o.interopDefault(O),_=e("bundle-text:./fullscreen-off.svg"),H=o.interopDefault(_),V=e("bundle-text:./fullscreen-on.svg"),N=o.interopDefault(V),B=e("bundle-text:./fullscreen-web-off.svg"),U=o.interopDefault(B),Y=e("bundle-text:./fullscreen-web-on.svg"),W=o.interopDefault(Y),K=e("bundle-text:./switch-on.svg"),Q=o.interopDefault(K),X=e("bundle-text:./switch-off.svg"),Z=o.interopDefault(X),G=e("bundle-text:./flip.svg"),J=o.interopDefault(G),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:E.default,arrowRight:$.default,playbackRate:T.default,aspectRatio:F.default,config:C.default,lock:L.default,flip:J.default,unlock:q.default,fullscreenOff:H.default,fullscreenOn:N.default,fullscreenWebOff:U.default,fullscreenWebOn:W.default,switchOn:Q.default,switchOff:Z.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"gpvEP","bundle-text:./loading.svg":"OH22M","bundle-text:./state.svg":"exeDr","bundle-text:./check.svg":"jDV5m","bundle-text:./play.svg":"8azN4","bundle-text:./pause.svg":"5ROTD","bundle-text:./volume.svg":"gd6yR","bundle-text:./volume-close.svg":"3xcqi","bundle-text:./screenshot.svg":"4bQmt","bundle-text:./setting.svg":"8JYeE","bundle-text:./arrow-left.svg":"1vtAE","bundle-text:./arrow-right.svg":"89K7J","bundle-text:./playback-rate.svg":"aboDI","bundle-text:./aspect-ratio.svg":"iXCLk","bundle-text:./config.svg":"f8v0I","bundle-text:./pip.svg":"5TDKn","bundle-text:./lock.svg":"7ioy7","bundle-text:./unlock.svg":"8M4rv","bundle-text:./fullscreen-off.svg":"iY4Nz","bundle-text:./fullscreen-on.svg":"8DF0G","bundle-text:./fullscreen-web-off.svg":"64eDf","bundle-text:./fullscreen-web-on.svg":"gxLKk","bundle-text:./switch-on.svg":"1a3p7","bundle-text:./switch-off.svg":"ioXaN","bundle-text:./flip.svg":"ghEK8","bundle-text:./error.svg":"3iobs","bundle-text:./close.svg":"dhbAn","bundle-text:./airplay.svg":"hbZQA","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],OH22M:[function(e,t,r,a){t.exports=''},{}],exeDr:[function(e,t,r,a){t.exports=''},{}],jDV5m:[function(e,t,r,a){t.exports=''},{}],"8azN4":[function(e,t,r,a){t.exports=''},{}],"5ROTD":[function(e,t,r,a){t.exports=''},{}],gd6yR:[function(e,t,r,a){t.exports=''},{}],"3xcqi":[function(e,t,r,a){t.exports=''},{}],"4bQmt":[function(e,t,r,a){t.exports=''},{}],"8JYeE":[function(e,t,r,a){t.exports=''},{}],"1vtAE":[function(e,t,r,a){t.exports=''},{}],"89K7J":[function(e,t,r,a){t.exports=''},{}],aboDI:[function(e,t,r,a){t.exports=''},{}],iXCLk:[function(e,t,r,a){t.exports=''},{}],f8v0I:[function(e,t,r,a){t.exports=''},{}],"5TDKn":[function(e,t,r,a){t.exports=''},{}],"7ioy7":[function(e,t,r,a){t.exports=''},{}],"8M4rv":[function(e,t,r,a){t.exports=''},{}],iY4Nz:[function(e,t,r,a){t.exports=''},{}],"8DF0G":[function(e,t,r,a){t.exports=''},{}],"64eDf":[function(e,t,r,a){t.exports=''},{}],gxLKk:[function(e,t,r,a){t.exports=''},{}],"1a3p7":[function(e,t,r,a){t.exports=''},{}],ioXaN:[function(e,t,r,a){t.exports=''},{}],ghEK8:[function(e,t,r,a){t.exports=''},{}],"3iobs":[function(e,t,r,a){t.exports=''},{}],dhbAn:[function(e,t,r,a){t.exports=''},{}],hbZQA:[function(e,t,r,a){t.exports=''},{}],aqPSH:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6Hidr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3qrNj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4G52T":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"48Pli":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eOOz3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"gpvEP","./miniProgressBar":"bAQc0","./autoOrientation":"31jHc","./autoPlayback":"UojkI","./fastForward":"k8rjo","./lock":"ifBkM","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bAQc0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"31jHc":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],UojkI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],k8rjo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ifBkM:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}]},["jz4E5"],"jz4E5","parcelRequireb749",{}); \ No newline at end of file +!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}G.push(this)}static get instances(){return G}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),G.splice(G.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"aQnLI","bundle-text:./style/index.less":"6KiDz","option-validator":"49gY0","./utils/emitter":"b0EdR","./utils":"gpvEP","./scheme":"bEi0U","./config":"eQRJX","./template":"dokTM","./i18n":"1bZfm","./player":"3xuL2","./control":"4zOCk","./contextmenu":"iAXzm","./info":"bFUCG","./subtitle":"lEARb","./events":"fpHt3","./hotkey":"9z96t","./layer":"e9ahx","./loading":"hlSVU","./notice":"eDyfI","./mask":"uwUok","./icons":"1F2QO","./setting":"aqPSH","./storage":"48Pli","./plugins":"eOOz3","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aQnLI:[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.5","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","types":"types/artplayer.d.ts","homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"6KiDz":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],"49gY0":[function(e,t,r,a){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>E),o.export(r,"getRect",()=>z),o.export(r,"loadImg",()=>$);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function E(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function z(e){return e.getBoundingClientRect()}function $(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"h19pd","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],h19pd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9OXL0":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dSV4f:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8Ue1J":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6OkQd":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"55T7g":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4YeYK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bEi0U:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eQRJX:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dokTM:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"aQnLI","./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1bZfm":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"gpvEP","./zh-cn":"kRuwK","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kRuwK:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3xuL2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),E=e("./playbackRateMix"),z=o.interopDefault(E),$=e("./aspectRatioMix"),I=o.interopDefault($),T=e("./screenshotMix"),M=o.interopDefault(T),F=e("./fullscreenMix"),P=o.interopDefault(F),C=e("./fullscreenWebMix"),D=o.interopDefault(C),A=e("./pipMix"),R=o.interopDefault(A),L=e("./loadedMix"),O=o.interopDefault(L),q=e("./playedMix"),_=o.interopDefault(q),H=e("./playingMix"),V=o.interopDefault(H),N=e("./autoSizeMix"),B=o.interopDefault(N),U=e("./rectMix"),Y=o.interopDefault(U),W=e("./flipMix"),K=o.interopDefault(W),Q=e("./miniMix"),X=o.interopDefault(Q),Z=e("./posterMix"),G=o.interopDefault(Z),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,z.default)(e),(0,I.default)(e),(0,M.default)(e),(0,P.default)(e),(0,D.default)(e),(0,R.default)(e),(0,O.default)(e),(0,_.default)(e),(0,V.default)(e),(0,B.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,X.default)(e),(0,G.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"hXrQD","./attrMix":"6pNgq","./playMix":"krR40","./pauseMix":"eFrQn","./toggleMix":"5mk0x","./seekMix":"kNVxo","./volumeMix":"j0CPw","./currentTimeMix":"3Qlk2","./durationMix":"ej83c","./switchMix":"4DKMC","./playbackRateMix":"3q2BJ","./aspectRatioMix":"kKNdy","./screenshotMix":"jEOGf","./fullscreenMix":"6fcMx","./fullscreenWebMix":"2fgOZ","./pipMix":"7ctTv","./loadedMix":"748cK","./playedMix":"2v3kJ","./playingMix":"7NTUH","./autoSizeMix":"lVqio","./rectMix":"i0rvQ","./flipMix":"f8acK","./miniMix":"htzAz","./posterMix":"iIy8c","./autoHeightMix":"4JyZb","./cssVarMix":"9iyPY","./themeMix":"7NNfU","./typeMix":"ipJQa","./stateMix":"6P1Bw","./subtitleOffsetMix":"eqBmH","./airplayMix":"etKzV","./qualityMix":"1CuDr","./thumbnailsMix":"63zKA","./optionInit":"cIuaY","./eventInit":"lqh1e","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],hXrQD:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6pNgq":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],krR40:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5mk0x":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kNVxo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j0CPw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3Qlk2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ej83c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4DKMC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3q2BJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kKNdy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],jEOGf:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6fcMx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"kQNoU","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kQNoU:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2fgOZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7ctTv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"748cK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2v3kJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NTUH":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lVqio:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],i0rvQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],f8acK:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],htzAz:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iIy8c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4JyZb":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9iyPY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NNfU":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ipJQa:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6P1Bw":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1CuDr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"63zKA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cIuaY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lqh1e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"eQRJX","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4zOCk":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),E=e("./airplay"),z=o.interopDefault(E),$=e("../utils");class I extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{$.isMobile||(this.show=!0)}),e.on("click",()=>{$.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,$.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,$.removeClass)(r,"art-hide-cursor"),(0,$.addClass)(r,"art-hover"),this.timer=Date.now()):((0,$.addClass)(r,"art-hide-cursor"),(0,$.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,$.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!$.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,z.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,$.def)(r,"$control_item",{get:()=>a}),(0,$.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=I},{"../utils/component":"j4qZZ","./fullscreen":"7juzt","./fullscreenWeb":"dukaq","./pip":"lt0U6","./playAndPause":"eyIIx","./progress":"2S7vj","./time":"bgLbI","./volume":"lA6hu","./setting":"cH3Og","./screenshot":"gGGQI","./airplay":"4TMBv","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j4qZZ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dukaq:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lt0U6:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eyIIx:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2S7vj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bgLbI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cH3Og:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],gGGQI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4TMBv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iAXzm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"gpvEP","../utils/component":"j4qZZ","./playbackRate":"9jior","./aspectRatio":"igCMy","./flip":"4eLts","./info":"kETiY","./version":"abcPF","./close":"aWF54","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9jior":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],igCMy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4eLts":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kETiY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],abcPF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"aQnLI","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aWF54:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bFUCG:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"gpvEP","./utils/component":"j4qZZ","option-validator":"49gY0","./scheme":"bEi0U","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],fpHt3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8qahy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5Eivu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"905Dr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8F0uv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"gpvEP","../control/progress":"2S7vj","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"26qSX":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9wES9":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cY9iQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3YYY5":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9z96t":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],uwUok:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"gpvEP","./utils/component":"j4qZZ","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1F2QO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),E=o.interopDefault(S),z=e("bundle-text:./arrow-right.svg"),$=o.interopDefault(z),I=e("bundle-text:./playback-rate.svg"),T=o.interopDefault(I),M=e("bundle-text:./aspect-ratio.svg"),F=o.interopDefault(M),P=e("bundle-text:./config.svg"),C=o.interopDefault(P),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),L=o.interopDefault(R),O=e("bundle-text:./unlock.svg"),q=o.interopDefault(O),_=e("bundle-text:./fullscreen-off.svg"),H=o.interopDefault(_),V=e("bundle-text:./fullscreen-on.svg"),N=o.interopDefault(V),B=e("bundle-text:./fullscreen-web-off.svg"),U=o.interopDefault(B),Y=e("bundle-text:./fullscreen-web-on.svg"),W=o.interopDefault(Y),K=e("bundle-text:./switch-on.svg"),Q=o.interopDefault(K),X=e("bundle-text:./switch-off.svg"),Z=o.interopDefault(X),G=e("bundle-text:./flip.svg"),J=o.interopDefault(G),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:E.default,arrowRight:$.default,playbackRate:T.default,aspectRatio:F.default,config:C.default,lock:L.default,flip:J.default,unlock:q.default,fullscreenOff:H.default,fullscreenOn:N.default,fullscreenWebOff:U.default,fullscreenWebOn:W.default,switchOn:Q.default,switchOff:Z.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"gpvEP","bundle-text:./loading.svg":"OH22M","bundle-text:./state.svg":"exeDr","bundle-text:./check.svg":"jDV5m","bundle-text:./play.svg":"8azN4","bundle-text:./pause.svg":"5ROTD","bundle-text:./volume.svg":"gd6yR","bundle-text:./volume-close.svg":"3xcqi","bundle-text:./screenshot.svg":"4bQmt","bundle-text:./setting.svg":"8JYeE","bundle-text:./arrow-left.svg":"1vtAE","bundle-text:./arrow-right.svg":"89K7J","bundle-text:./playback-rate.svg":"aboDI","bundle-text:./aspect-ratio.svg":"iXCLk","bundle-text:./config.svg":"f8v0I","bundle-text:./pip.svg":"5TDKn","bundle-text:./lock.svg":"7ioy7","bundle-text:./unlock.svg":"8M4rv","bundle-text:./fullscreen-off.svg":"iY4Nz","bundle-text:./fullscreen-on.svg":"8DF0G","bundle-text:./fullscreen-web-off.svg":"64eDf","bundle-text:./fullscreen-web-on.svg":"gxLKk","bundle-text:./switch-on.svg":"1a3p7","bundle-text:./switch-off.svg":"ioXaN","bundle-text:./flip.svg":"ghEK8","bundle-text:./error.svg":"3iobs","bundle-text:./close.svg":"dhbAn","bundle-text:./airplay.svg":"hbZQA","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],OH22M:[function(e,t,r,a){t.exports=''},{}],exeDr:[function(e,t,r,a){t.exports=''},{}],jDV5m:[function(e,t,r,a){t.exports=''},{}],"8azN4":[function(e,t,r,a){t.exports=''},{}],"5ROTD":[function(e,t,r,a){t.exports=''},{}],gd6yR:[function(e,t,r,a){t.exports=''},{}],"3xcqi":[function(e,t,r,a){t.exports=''},{}],"4bQmt":[function(e,t,r,a){t.exports=''},{}],"8JYeE":[function(e,t,r,a){t.exports=''},{}],"1vtAE":[function(e,t,r,a){t.exports=''},{}],"89K7J":[function(e,t,r,a){t.exports=''},{}],aboDI:[function(e,t,r,a){t.exports=''},{}],iXCLk:[function(e,t,r,a){t.exports=''},{}],f8v0I:[function(e,t,r,a){t.exports=''},{}],"5TDKn":[function(e,t,r,a){t.exports=''},{}],"7ioy7":[function(e,t,r,a){t.exports=''},{}],"8M4rv":[function(e,t,r,a){t.exports=''},{}],iY4Nz:[function(e,t,r,a){t.exports=''},{}],"8DF0G":[function(e,t,r,a){t.exports=''},{}],"64eDf":[function(e,t,r,a){t.exports=''},{}],gxLKk:[function(e,t,r,a){t.exports=''},{}],"1a3p7":[function(e,t,r,a){t.exports=''},{}],ioXaN:[function(e,t,r,a){t.exports=''},{}],ghEK8:[function(e,t,r,a){t.exports=''},{}],"3iobs":[function(e,t,r,a){t.exports=''},{}],dhbAn:[function(e,t,r,a){t.exports=''},{}],hbZQA:[function(e,t,r,a){t.exports=''},{}],aqPSH:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6Hidr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3qrNj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4G52T":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"48Pli":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eOOz3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"gpvEP","./miniProgressBar":"bAQc0","./autoOrientation":"31jHc","./autoPlayback":"UojkI","./fastForward":"k8rjo","./lock":"ifBkM","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bAQc0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"31jHc":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],UojkI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],k8rjo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ifBkM:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}]},["jz4E5"],"jz4E5","parcelRequireb749",{}); \ No newline at end of file diff --git a/docs/compiled/artplayer.legacy.js b/docs/compiled/artplayer.legacy.js index 7e335ea23..3dd89ada7 100644 --- a/docs/compiled/artplayer.legacy.js +++ b/docs/compiled/artplayer.legacy.js @@ -1,8 +1,8 @@ /*! - * artplayer.js v5.2.4 + * artplayer.js v5.2.5 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,n,o,a,s,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof c[n]&&c[n],u=l.i||{},p=l.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof c[n]&&c[n];if(!r&&a)return a(t,!0);if(l)return l(t,!0);if(f&&"string"==typeof t)return f(t);var s=Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,u,i,i.exports,c)}return p[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=l,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=u,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h").concat(e))};i("Version@"+t.version);for(var c=0;c0)||void 0===arguments[0]||arguments[0];this.events.destroy(),this.template.destroy(e),er.splice(er.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return er}},{key:"version",get:function(){return l.version}},{key:"config",get:function(){return j.default}},{key:"utils",get:function(){return v}},{key:"scheme",get:function(){return y.default}},{key:"Emitter",get:function(){return m.default}},{key:"validator",get:function(){return d.default}},{key:"kindOf",get:function(){return d.default.kindOf}},{key:"html",get:function(){return w.default.html}},{key:"option",get:function(){var e;return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:function(e){return e}},moreVideoAttr:{controls:!1,preload:v.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:null==(e=navigator)?void 0:e.language.toLowerCase()}}}]),t}(m.default);en.STYLE=p.default,en.DEBUG=!1,en.CONTEXTMENU=!0,en.NOTICE_TIME=2e3,en.SETTING_WIDTH=250,en.SETTING_ITEM_WIDTH=200,en.SETTING_ITEM_HEIGHT=35,en.RESIZE_TIME=200,en.SCROLL_TIME=200,en.SCROLL_GAP=50,en.AUTO_PLAYBACK_MAX=10,en.AUTO_PLAYBACK_MIN=5,en.AUTO_PLAYBACK_TIMEOUT=3e3,en.RECONNECT_TIME_MAX=5,en.RECONNECT_SLEEP_TIME=1e3,en.CONTROL_HIDE_TIME=3e3,en.DBCLICK_TIME=300,en.DBCLICK_FULLSCREEN=!0,en.MOBILE_DBCLICK_PLAY=!0,en.MOBILE_CLICK_PLAY=!1,en.AUTO_ORIENTATION_TIME=200,en.INFO_LOOP_TIME=1e3,en.FAST_FORWARD_VALUE=3,en.FAST_FORWARD_TIME=1e3,en.TOUCH_MOVE_RATIO=.5,en.VOLUME_STEP=.1,en.SEEK_STEP=5,en.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],en.ASPECT_RATIO=["default","4:3","16:9"],en.FLIP=["normal","horizontal","vertical"],en.FULLSCREEN_WEB_IN_BODY=!1,en.LOG_VERSION=!0,en.USE_RAF=!1,v.isBrowser&&(window.Artplayer=en,v.setStyleText("artplayer-style",p.default),setTimeout(function(){en.LOG_VERSION&&console.log("%c ArtPlayer %c ".concat(en.version," %c https://artplayer.org"),"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../package.json":"7XQup","bundle-text:./style/index.less":"5ocQB","option-validator":"gfXqm","./utils/emitter":"5yEww","./utils":"b2ThP","./scheme":"7A6gr","./config":"fL7wI","./template":"phvND","./i18n":"cdQZN","./player":"2MjvF","./control":"5ma8b","./contextmenu":"dM9Mf","./info":"jcSTc","./subtitle":"kP0A3","./events":"dq2pN","./hotkey":"bFwyD","./layer":"kmc23","./loading":"kgaC4","./notice":"cKyIf","./mask":"20smU","./icons":"bwbJa","./setting":"90OCX","./storage":"5QsMA","./plugins":"5b6es","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aFrVF:[function(e,t,r,n){"use strict";var o=e("206ae600478262e1"),a=e("e9be447e8b980fc1"),s=e("3357997583474f25");r._=function(e,t,r){return t=o._(t),s._(e,a._()?Reflect.construct(t,r||[],o._(e).constructor):t.apply(e,r))}},{"206ae600478262e1":"cAaXX",e9be447e8b980fc1:"6eqqS","3357997583474f25":"fa3rG"}],cAaXX:[function(e,t,r,n){"use strict";function o(e){return r._=o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}r._=o},{}],"6eqqS":[function(e,t,r,n){"use strict";function o(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(r._=o=function(){return!!e})()}r._=o},{}],fa3rG:[function(e,t,r,n){"use strict";var o=e("2f044ca51fa80bb1"),a=e("95fbded20695b6ea");r._=function(e,t){return t&&("object"===a._(t)||"function"==typeof t)?t:o._(e)}},{"2f044ca51fa80bb1":"ckXPU","95fbded20695b6ea":"9vrOw"}],ckXPU:[function(e,t,r,n){"use strict";r._=function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},{}],"9vrOw":[function(e,t,r,n){"use strict";r._=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}},{}],"5Lt2s":[function(e,t,r,n){"use strict";r._=function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}},{}],fExy2:[function(e,t,r,n){"use strict";function o(e,t){for(var r=0;r","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"5ocQB":[function(e,t,r,n){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:rgba(0,0,0,.5);--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:rgba(255,255,255,.25);--art-hover-color:rgba(255,255,255,.25);--art-loaded-color:rgba(255,255,255,.25);--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:rgba(255,255,255,.5);--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:rgba(0,0,0,.85);--art-tip-background:rgba(0,0,0,.7);--art-scrollbar-size:4px;--art-scrollbar-background:rgba(255,255,255,.25);--art-scrollbar-background-hover:rgba(255,255,255,.5);--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;-ms-user-select:none;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:transparent;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;top:0;bottom:0;left:0;right:auto;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px rgba(0,0,0,.2),0 1px 2px -1px rgba(0,0,0,.2)}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:rgba(255,255,255,.25);justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;top:0;bottom:auto;left:0;right:0}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid rgba(255,255,255,.1);padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow-x:hidden;overflow-y:auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:rgba(255,255,255,.5)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{-ms-appearance:none;appearance:none;background-color:rgba(255,255,255,.2);outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid rgba(255,255,255,.1)}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;-ms-user-select:all;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;-ms-user-select:none;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px rgba(0,0,0,.5)}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:rgba(0,0,0,.25);justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow-x:hidden;overflow-y:auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:rgba(255,255,255,.1)}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid transparent;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],gfXqm:[function(e,t,r,n){var o=e("@swc/helpers/cjs/_type_of.cjs");t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==(0,o._)(Symbol.iterator)?function(e){return void 0===e?"undefined":(0,o._)(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":(0,o._)(e)})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===n(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(n(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function n(e){return e.constructor?e.constructor.name:null}function a(e,t){var n=21?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector(e)}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(t.querySelectorAll(e))}function c(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function u(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function f(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function h(e,t){for(var r in t)d(e,r,t[r]);return e}function m(e,t){var r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(n):n}function v(e){return Array.from(e.parentElement.children).filter(function(t){return t!==e})}function g(e,t){v(e).forEach(function(e){return l(e,t)}),c(e,t)}function y(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"top";a.isMobile||(e.setAttribute("aria-label",t),c(e,"hint--rounded"),c(e,"hint--".concat(r)))}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,a=r.top-t<=n&&r.top+r.height+t>=0,s=r.left-t<=o+t&&r.left+r.width+t>=0;return a&&s}function j(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function _(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=w("i");return c(r,"art-icon"),c(r,"art-icon-".concat(e)),p(r,t),r}function k(e,t){var r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function S(){var e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function T(e){return e.getBoundingClientRect()}function E(e,t){return new Promise(function(r,n){var o=new Image;o.onload=function(){if(t&&1!==t){var a=document.createElement("canvas"),s=a.getContext("2d");a.width=o.width*t,a.height=o.height*t,s.drawImage(o,0,0,a.width,a.height),a.toBlob(function(t){var o=URL.createObjectURL(t),a=new Image;a.onload=function(){r(a)},a.onerror=function(){URL.revokeObjectURL(o),n(Error("Image load failed: ".concat(e)))},a.src=o})}else r(o)},o.onerror=function(){n(Error("Image load failed: ".concat(e)))},o.src=e})}},{"./compatibility":"8NSoS","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8NSoS":[function(e,t,r,n){var o,a,s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"userAgent",function(){return i}),s.export(r,"isSafari",function(){return c}),s.export(r,"isWechat",function(){return l}),s.export(r,"isIE",function(){return u}),s.export(r,"isAndroid",function(){return p}),s.export(r,"isIOS",function(){return f}),s.export(r,"isIOS13",function(){return d}),s.export(r,"isMobile",function(){return h}),s.export(r,"isBrowser",function(){return m});var i=null!=(a=null==(o=globalThis)?void 0:o.CUSTOM_USER_AGENT)?a:"undefined"!=typeof navigator?navigator.userAgent:"",c=/^((?!chrome|android).)*safari/i.test(i),l=/MicroMessenger/i.test(i),u=/MSIE|Trident/i.test(i),p=/android/i.test(i),f=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,d=f||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,h=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||d,m="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lOuxs:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",function(){return c}),o.export(r,"errorHandle",function(){return l});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_inherits.cjs"),c=function(e){"use strict";function t(e,r){var n;return(0,s._)(this,t),n=(0,a._)(this,t,[e]),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n,r||n.constructor),n.name="ArtPlayerError",n}return(0,i._)(t,e),t}((0,e("@swc/helpers/cjs/_wrap_native_super.cjs")._)(Error));function l(e,t){if(!e)throw new c(t);return e}},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_wrap_native_super.cjs":"akKMe","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],akKMe:[function(e,t,r,n){"use strict";var o=e("a94182fa8bb55a"),a=e("3f24b40eec405e24"),s=e("7bc3453f771be53d"),i=e("d41aede23b6bd051");function c(e){var t="function"==typeof Map?new Map:void 0;return r._=c=function(e){if(null===e||!s._(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return o._(e,arguments,a._(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i._(r,e)},c(e)}r._=c},{a94182fa8bb55a:"rusRV","3f24b40eec405e24":"cAaXX","7bc3453f771be53d":"k1Uei",d41aede23b6bd051:"gBKVY"}],rusRV:[function(e,t,r,n){"use strict";var o=e("8b1faca180708ca4"),a=e("b6994c7e46a50bdb");function s(e,t,n){return o._()?r._=s=Reflect.construct:r._=s=function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&a._(o,r.prototype),o},s.apply(null,arguments)}r._=s},{"8b1faca180708ca4":"6eqqS",b6994c7e46a50bdb:"gBKVY"}],k1Uei:[function(e,t,r,n){"use strict";r._=function(e){return -1!==Function.toString.call(e).indexOf("[native code]")}},{}],"9JAsE":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,function(e,t,r){var n=r.slice(0,3);return 1===r.length&&(n=r+"00"),2===r.length&&(n=r+"0"),"".concat(t,",").concat(n)}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function s(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){var t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split(/[:.]/).map(function(e,t,r){if(t===r.length-1){if(1===e.length)return".".concat(e,"00");if(2===e.length)return".".concat(e,"0")}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?".".concat(e):":".concat(e)}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(function(e){var n=e.match(t);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(function(e){return e.trim()}).join("\n")}:null}).filter(function(e){return e}).map(function(e,t){return e?t+1+"\n"+"".concat(e.start," --\x3e ").concat(e.end)+"\n"+"".concat(e.text):""}).filter(function(e){return e.trim()}).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",function(){return a}),o.export(r,"vttToBlob",function(){return s}),o.export(r,"assToVtt",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dnHdh:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){var r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",function(){return function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}}),o.export(r,"download",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],fOScp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",function(){return i}),o.export(r,"has",function(){return l}),o.export(r,"get",function(){return u}),o.export(r,"mergeDeep",function(){return function e(){for(var t=arguments.length,r=Array(t),n=0;ne.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise(function(t){return setTimeout(t,e)})}function s(e,t){var r;return function(){for(var n=this,o=arguments.length,a=Array(o),s=0;s0?[t,r,n]:[r,n]).map(function(e){return e<10?"0".concat(e):String(e)}).join(":")}function c(e){return e.replace(/[&<>'"]/g,function(e){return({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e})}function l(e){var t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp("(".concat(Object.keys(t).join("|"),")"),"g");return e.replace(r,function(e){return t[e]||e})}o.defineInteropFlag(r),o.export(r,"clamp",function(){return a}),o.export(r,"capitalize",function(){return s}),o.export(r,"secondToTime",function(){return i}),o.export(r,"escape",function(){return c}),o.export(r,"unescape",function(){return l})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7A6gr":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",function(){return m});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils"),c="array",l="boolean",u="string",p="number",f="object",d="function";function h(e,t,r){return(0,i.errorHandle)(t===u||t===p||e instanceof Element,"".concat(r.join(".")," require '").concat(u,"' or 'Element' type"))}var m={html:h,disable:"?".concat(l),name:"?".concat(u),index:"?".concat(p),style:"?".concat(f),click:"?".concat(d),mounted:"?".concat(d),tooltip:"?".concat(u,"|").concat(p),width:"?".concat(p),selector:"?".concat(c),onSelect:"?".concat(d),switch:"?".concat(l),onSwitch:"?".concat(d),range:"?".concat(c),onRange:"?".concat(d),onChange:"?".concat(d)};r.default={id:u,container:h,url:u,poster:u,type:u,theme:u,lang:u,volume:p,isLive:l,muted:l,autoplay:l,autoSize:l,autoMini:l,loop:l,flip:l,playbackRate:l,aspectRatio:l,screenshot:l,setting:l,hotkey:l,pip:l,mutex:l,backdrop:l,fullscreen:l,fullscreenWeb:l,subtitleOffset:l,miniProgressBar:l,useSSR:l,playsInline:l,lock:l,gesture:l,fastForward:l,autoPlayback:l,autoOrientation:l,airplay:l,proxy:"?".concat(d),plugins:[d],layers:[m],contextmenu:[m],settings:[m],controls:[(0,s._)((0,a._)({},m),{position:function(e,t,r){var n=["top","left","right"];return(0,i.errorHandle)(n.includes(e),"".concat(r.join(".")," only accept ").concat(n.toString()," as parameters"))}})],quality:[{default:"?".concat(l),html:u,url:u}],highlight:[{time:p,text:u}],thumbnails:{url:u,number:p,column:p,width:p,height:p,scale:p},subtitle:{url:u,name:u,type:u,style:f,escape:l,encoding:u,onVttLoad:d},moreVideoAttr:f,i18n:f,icons:f,cssVar:f,customType:f}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7vaqr":[function(e,t,r,n){"use strict";var o=e("b3d0f206b721b857");r._=function(e){for(var t=1;t\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
'.concat(i.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
\nx\n
\n
\n
\n
[x]
\n
\n
\n\n ')}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../package.json":"7XQup","./utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],cdQZN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("../utils"),c=e("./zh-cn"),l=o.interopDefault(c),u=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.languages={"zh-cn":l.default},this.language={},this.update(t.option.i18n)}return(0,s._)(e,[{key:"init",value:function(){var e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}},{key:"get",value:function(e){return this.language[e]||e}},{key:"update",value:function(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../utils":"b2ThP","./zh-cn":"f0w6P","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],f0w6P:[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"2MjvF":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return ew});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("./urlMix"),i=o.interopDefault(s),c=e("./attrMix"),l=o.interopDefault(c),u=e("./playMix"),p=o.interopDefault(u),f=e("./pauseMix"),d=o.interopDefault(f),h=e("./toggleMix"),m=o.interopDefault(h),v=e("./seekMix"),g=o.interopDefault(v),y=e("./volumeMix"),b=o.interopDefault(y),j=e("./currentTimeMix"),_=o.interopDefault(j),w=e("./durationMix"),x=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),E=o.interopDefault(T),I=e("./aspectRatioMix"),P=o.interopDefault(I),M=e("./screenshotMix"),C=o.interopDefault(M),F=e("./fullscreenMix"),O=o.interopDefault(F),A=e("./fullscreenWebMix"),D=o.interopDefault(A),L=e("./pipMix"),R=o.interopDefault(L),$=e("./loadedMix"),z=o.interopDefault($),V=e("./playedMix"),q=o.interopDefault(V),H=e("./playingMix"),N=o.interopDefault(H),Z=e("./autoSizeMix"),B=o.interopDefault(Z),W=e("./rectMix"),U=o.interopDefault(W),Y=e("./flipMix"),X=o.interopDefault(Y),G=e("./miniMix"),K=o.interopDefault(G),J=e("./posterMix"),Q=o.interopDefault(J),ee=e("./autoHeightMix"),et=o.interopDefault(ee),er=e("./cssVarMix"),en=o.interopDefault(er),eo=e("./themeMix"),ea=o.interopDefault(eo),es=e("./typeMix"),ei=o.interopDefault(es),ec=e("./stateMix"),el=o.interopDefault(ec),eu=e("./subtitleOffsetMix"),ep=o.interopDefault(eu),ef=e("./airplayMix"),ed=o.interopDefault(ef),eh=e("./qualityMix"),em=o.interopDefault(eh),ev=e("./thumbnailsMix"),eg=o.interopDefault(ev),ey=e("./optionInit"),eb=o.interopDefault(ey),ej=e("./eventInit"),e_=o.interopDefault(ej),ew=function e(t){"use strict";(0,a._)(this,e),(0,i.default)(t),(0,l.default)(t),(0,p.default)(t),(0,d.default)(t),(0,m.default)(t),(0,g.default)(t),(0,b.default)(t),(0,_.default)(t),(0,x.default)(t),(0,S.default)(t),(0,E.default)(t),(0,P.default)(t),(0,C.default)(t),(0,O.default)(t),(0,D.default)(t),(0,R.default)(t),(0,z.default)(t),(0,q.default)(t),(0,N.default)(t),(0,B.default)(t),(0,U.default)(t),(0,X.default)(t),(0,K.default)(t),(0,Q.default)(t),(0,et.default)(t),(0,en.default)(t),(0,ea.default)(t),(0,ei.default)(t),(0,el.default)(t),(0,ep.default)(t),(0,ed.default)(t),(0,em.default)(t),(0,eg.default)(t),(0,e_.default)(t),(0,eb.default)(t)}},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","./urlMix":"brLGH","./attrMix":"4Gijp","./playMix":"TkS1b","./pauseMix":"6FrK0","./toggleMix":"ljXwE","./seekMix":"eXltp","./volumeMix":"2MkGB","./currentTimeMix":"3zu0H","./durationMix":"7DsNV","./switchMix":"iNRLI","./playbackRateMix":"gaUXG","./aspectRatioMix":"bliBr","./screenshotMix":"a0vr8","./fullscreenMix":"kxdxR","./fullscreenWebMix":"7gzYH","./pipMix":"5Q3PD","./loadedMix":"300dZ","./playedMix":"93dbl","./playingMix":"pmxRE","./autoSizeMix":"lwSCQ","./rectMix":"9vxAy","./flipMix":"h4E38","./miniMix":"bd6Da","./posterMix":"1MBAA","./autoHeightMix":"ktUvk","./cssVarMix":"iJjzq","./themeMix":"3U8gV","./typeMix":"699Bq","./stateMix":"9MC3x","./subtitleOffsetMix":"doLuv","./airplayMix":"1tHnW","./qualityMix":"2kVAq","./thumbnailsMix":"aPNcx","./optionInit":"l0xd8","./eventInit":"1WIo5","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],brLGH:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t=e.option,r=e.template.$video;(0,i.def)(e,"url",{get:function(){return r.src},set:function(n){return(0,a._)(function(){var o,a,c;return(0,s._)(this,function(s){switch(s.label){case 0:if(!n)return[3,4];if(o=e.url,a=t.type||(0,i.getExt)(n),c=t.customType[a],!(a&&c))return[3,2];return[4,(0,i.sleep)()];case 1:return s.sent(),e.loading.show=!0,c.call(e,r,n,e),[3,3];case 2:URL.revokeObjectURL(o),r.src=n,s.label=3;case 3:return o!==e.url&&(e.option.url=n,e.isReady&&o&&e.once("video:canplay",function(){e.emit("restart",n)})),[3,6];case 4:return[4,(0,i.sleep)()];case 5:s.sent(),e.loading.show=!0,s.label=6;case 6:return[2]}})})()}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,r,n){"use strict";function o(e,t,r,n,o,a,s){try{var i=e[a](s),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var s=e.apply(t,r);function i(e){o(s,n,a,i,c,"next",e)}function c(e){o(s,n,a,i,c,"throw",e)}i(void 0)})}}},{}],a4h1C:[function(e,t,r,n){"use strict";r._=e("3d8e14b4b7163380").__generator},{"3d8e14b4b7163380":"36MWs"}],"36MWs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return i}),o.export(r,"__assign",function(){return c}),o.export(r,"__rest",function(){return l}),o.export(r,"__decorate",function(){return u}),o.export(r,"__param",function(){return p}),o.export(r,"__esDecorate",function(){return f}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return h}),o.export(r,"__setFunctionName",function(){return m}),o.export(r,"__metadata",function(){return v}),o.export(r,"__awaiter",function(){return g}),o.export(r,"__generator",function(){return y}),o.export(r,"__createBinding",function(){return b}),o.export(r,"__exportStar",function(){return j}),o.export(r,"__values",function(){return _}),o.export(r,"__read",function(){return w}),o.export(r,"__spread",function(){return x}),o.export(r,"__spreadArrays",function(){return k}),o.export(r,"__spreadArray",function(){return S}),o.export(r,"__await",function(){return T}),o.export(r,"__asyncGenerator",function(){return E}),o.export(r,"__asyncDelegator",function(){return I}),o.export(r,"__asyncValues",function(){return P}),o.export(r,"__makeTemplateObject",function(){return M}),o.export(r,"__importStar",function(){return O}),o.export(r,"__importDefault",function(){return A}),o.export(r,"__classPrivateFieldGet",function(){return D}),o.export(r,"__classPrivateFieldSet",function(){return L}),o.export(r,"__classPrivateFieldIn",function(){return R}),o.export(r,"__addDisposableResource",function(){return $}),o.export(r,"__disposeResources",function(){return V}),o.export(r,"__rewriteRelativeImportExtension",function(){return q});var a=e("@swc/helpers/cjs/_type_of.cjs"),s=function(e,t){return(s=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function u(e,t,r,n){var o,s=arguments.length,i=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,a._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){return function(r,n){t(r,n,e)}}function f(e,t,r,n,o,s){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var c,l=n.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!t&&e?n.static?e:e.prototype:null,f=t||(p?Object.getOwnPropertyDescriptor(p,n.name):{}),d=!1,h=r.length-1;h>=0;h--){var m={};for(var v in n)m[v]="access"===v?{}:n[v];for(var v in n.access)m.access[v]=n.access[v];m.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");s.push(i(e||null))};var g=(0,r[h])("accessor"===l?{get:f.get,set:f.set}:f[u],m);if("accessor"===l){if(void 0===g)continue;if(null===g||(void 0===g?"undefined":(0,a._)(g))!=="object")throw TypeError("Object expected");(c=i(g.get))&&(f.get=c),(c=i(g.set))&&(f.set=c),(c=i(g.init))&&o.unshift(c)}else(c=i(g))&&("field"===l?o.unshift(c):f[u]=c)}p&&Object.defineProperty(p,n.name,f),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s}function x(){for(var e=[],t=0;t1||i(e,t)})},t&&(n[e]=t(n[e])))}function i(e,t){try{var r;(r=o[e](t)).value instanceof T?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}}function I(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:T(e[n](t)),done:!1}:o?o(t):t}:o}}function P(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=_(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var a,s,i;a=n,s=o,i=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){a({value:e,done:i})},s)})}}}function M(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},F=function(e){return(F=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=F(e),n=0;nu?((0,a.setStyle)(o,"width","".concat(u*l,"px")),(0,a.setStyle)(o,"height","100%"),(0,a.setStyle)(o,"margin","0 auto")):((0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","".concat(c/u,"px")),(0,a.setStyle)(o,"margin","auto 0")),s.dataset.aspectRatio=n}r.show="".concat(t.get("Aspect Ratio"),": ").concat("default"===n?t.get("Default"):n),e.emit("aspectRatio",n)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a0vr8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t,r=e.notice,n=e.template.$video,o=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),e(o.toDataURL("image/png"))}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"getBlobUrl",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob(function(t){e(URL.createObjectURL(t))})}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"screenshot",{value:(t=(0,a._)(function(t){var r,o;return(0,s._)(this,function(a){switch(a.label){case 0:return[4,e.getDataURL()];case 1:return r=a.sent(),o=t||"artplayer_".concat((0,i.secondToTime)(n.currentTime)),(0,i.download)(r,"".concat(o,".png")),e.emit("screenshot",r),[2,r]}})}),function(e){return t.apply(this,arguments)})})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kxdxR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../libs/screenfull"),c=o.interopDefault(i),l=e("../utils");function u(e){var t=e.i18n,r=e.notice,n=e.template,o=n.$video,i=n.$player,u=function(e){c.default.on("change",function(){e.emit("fullscreen",c.default.isFullscreen),c.default.isFullscreen?(e.state="fullscreen",(0,l.addClass)(i,"art-fullscreen")):(0,l.removeClass)(i,"art-fullscreen"),e.emit("resize")}),c.default.on("error",function(t){e.emit("fullscreenError",t)}),(0,l.def)(e,"fullscreen",{get:function(){return c.default.isFullscreen},set:function(e){return(0,a._)(function(){return(0,s._)(this,function(t){switch(t.label){case 0:if(!e)return[3,2];return[4,c.default.request(i)];case 1:return t.sent(),[3,4];case 2:return[4,c.default.exit()];case 3:t.sent(),t.label=4;case 4:return[2]}})})()}})},p=function(e){e.proxy(document,"webkitfullscreenchange",function(){e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,l.def)(e,"fullscreen",{get:function(){return document.fullscreenElement===o},set:function(t){t?(e.state="fullscreen",o.webkitEnterFullscreen()):o.webkitExitFullscreen()}})};e.once("video:loadedmetadata",function(){c.default.isEnabled?u(e):o.webkitSupportsFullscreen?p(e):(0,l.def)(e,"fullscreen",{get:function(){return!1},set:function(){r.show=t.get("Fullscreen Not Supported")}}),(0,l.def)(e,"fullscreen",(0,l.get)(e,"fullscreen"))})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../libs/screenfull":"6Yfu0","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"6Yfu0":[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("@swc/helpers/cjs/_sliced_to_array.cjs"),a=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],s=function(){if("undefined"==typeof document)return!1;var e=a[0],t={},r=!0,n=!1,s=void 0;try{for(var i,c=a[Symbol.iterator]();!(r=(i=c.next()).done);r=!0){var l=i.value;if(l[1]in document){var u=!0,p=!1,f=void 0;try{for(var d,h=l.entries()[Symbol.iterator]();!(u=(d=h.next()).done);u=!0){var m=(0,o._)(d.value,2),v=m[0],g=m[1];t[e[v]]=g}}catch(e){p=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(p)throw f}}return t}}}catch(e){n=!0,s=e}finally{try{r||null==c.return||c.return()}finally{if(n)throw s}}return!1}(),i={change:s.fullscreenchange,error:s.fullscreenerror},c={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.documentElement,t=arguments.length>1?arguments[1]:void 0;return new Promise(function(r,n){var o=function(){c.off("change",o),r()};c.on("change",o);var a=e[s.requestFullscreen](t);a instanceof Promise&&a.then(o).catch(n)})},exit:function(){return new Promise(function(e,t){if(!c.isFullscreen)return void e();var r=function(){c.off("change",r),e()};c.on("change",r);var n=document[s.exitFullscreen]();n instanceof Promise&&n.then(r).catch(t)})},toggle:function(e,t){return c.isFullscreen?c.exit():c.request(e,t)},onchange:function(e){c.on("change",e)},onerror:function(e){c.on("error",e)},on:function(e,t){var r=i[e];r&&document.addEventListener(r,t,!1)},off:function(e,t){var r=i[e];r&&document.removeEventListener(r,t,!1)},raw:s};Object.defineProperties(c,{isFullscreen:{get:function(){return!!document[s.fullscreenElement]}},element:{enumerable:!0,get:function(){return document[s.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return!!document[s.fullscreenEnabled]}}}),s||(c={isEnabled:!1}),r.default=c},{"@swc/helpers/cjs/_sliced_to_array.cjs":"69dwW","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"69dwW":[function(e,t,r,n){"use strict";var o=e("1c05c980d01d7095"),a=e("d604d0840046159b"),s=e("9ac1542249932d1a"),i=e("d04f777c592843b");r._=function(e,t){return o._(e)||a._(e,t)||i._(e,t)||s._()}},{"1c05c980d01d7095":"dgv90",d604d0840046159b:"8f1n5","9ac1542249932d1a":"edvMI",d04f777c592843b:"ikxEb"}],dgv90:[function(e,t,r,n){"use strict";r._=function(e){if(Array.isArray(e))return e}},{}],"8f1n5":[function(e,t,r,n){"use strict";r._=function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],s=!0,i=!1;try{for(o=o.call(e);!(s=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){i=!0,n=e}finally{try{s||null==o.return||o.return()}finally{if(i)throw n}}return a}}},{}],edvMI:[function(e,t,r,n){"use strict";r._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],"7gzYH":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.template,n=r.$container,o=r.$player,s="";(0,a.def)(e,"fullscreenWeb",{get:function(){return(0,a.hasClass)(o,"art-fullscreen-web")},set:function(r){r?(s=o.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(document.body,o),e.state="fullscreenWeb",(0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","100%"),(0,a.addClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(n,o),s&&(o.style.cssText=s,s=""),(0,a.removeClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"5Q3PD":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t,r,n,o,s=e.i18n,i=e.notice,c=e.template.$video;document.pictureInPictureEnabled?(t=e.template.$video,r=e.proxy,n=e.notice,t.disablePictureInPicture=!1,(0,a.def)(e,"pip",{get:function(){return document.pictureInPictureElement},set:function(r){r?(e.state="pip",t.requestPictureInPicture().catch(function(e){throw n.show=e,e})):document.exitPictureInPicture().catch(function(e){throw n.show=e,e})}}),r(t,"enterpictureinpicture",function(){e.emit("pip",!0)}),r(t,"leavepictureinpicture",function(){e.emit("pip",!1)})):c.webkitSupportsPresentationMode?((o=e.template.$video).webkitSetPresentationMode("inline"),(0,a.def)(e,"pip",{get:function(){return"picture-in-picture"===o.webkitPresentationMode},set:function(t){t?(e.state="pip",o.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(o.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})):(0,a.def)(e,"pip",{get:function(){return!1},set:function(){i.show=s.get("PIP Not Supported")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"300dZ":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"loaded",{get:function(){return e.loadedTime/t.duration}}),(0,a.def)(e,"loadedTime",{get:function(){return t.buffered.length?t.buffered.end(t.buffered.length-1):0}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"93dbl":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"played",{get:function(){return e.currentTime/e.duration}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],pmxRE:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"playing",{get:function(){return"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lwSCQ:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$player,o=t.$video;(0,a.def)(e,"autoSize",{value:function(){var t=o.videoWidth,s=o.videoHeight,i=(0,a.getRect)(r),c=i.width,l=i.height,u=t/s;c/l>u?((0,a.setStyle)(n,"width","".concat(l*u/c*100,"%")),(0,a.setStyle)(n,"height","100%")):((0,a.setStyle)(n,"width","100%"),(0,a.setStyle)(n,"height","".concat(c/u/l*100,"%"))),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9vxAy":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"rect",{get:function(){return(0,a.getRect)(e.template.$player)}});for(var t=["bottom","height","left","right","top","width"],r=0;r');(0,a.append)(d,t.close),r(d,"click",p);var h=(0,a.append)(s,'
'),m=(0,a.append)(h,t.play),v=(0,a.append)(h,t.pause);return r(m,"click",function(){return e.play()}),r(v,"click",function(){return e.pause()}),f(m,v),e.on("video:playing",function(){return f(m,v)}),e.on("video:pause",function(){return f(m,v)}),e.on("video:timeupdate",function(){return f(m,v)}),r(s,"mousedown",function(e){c=0===e.button,l=e.pageX,u=e.pageY}),e.on("document:mousemove",function(e){if(c){(0,a.addClass)(s,"art-mini-dragging");var t=e.pageX-l,r=e.pageY-u;(0,a.setStyle)(s,"transform","translate(".concat(t,"px, ").concat(r,"px)"))}}),e.on("document:mouseup",function(){if(c){c=!1,(0,a.removeClass)(s,"art-mini-dragging");var e=(0,a.getRect)(s);n.set("left",e.left),n.set("top",e.top),(0,a.setStyle)(s,"left","".concat(e.left,"px")),(0,a.setStyle)(s,"top","".concat(e.top,"px")),(0,a.setStyle)(s,"transform",null)}}),s}(),m=n.get("top"),v=n.get("left");"number"==typeof m&&"number"==typeof v?((0,a.setStyle)(h,"top","".concat(m,"px")),(0,a.setStyle)(h,"left","".concat(v,"px")),(0,a.isInViewport)(h)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1MBAA":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$poster;(0,a.def)(e,"poster",{get:function(){try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set:function(e){(0,a.setStyle)(t,"backgroundImage","url(".concat(e,")"))}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ktUvk:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$video;(0,a.def)(e,"autoHeight",{value:function(){var t=r.clientWidth,o=n.videoHeight,s=t/n.videoWidth*o;(0,a.setStyle)(r,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],iJjzq:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$player;(0,a.def)(e,"cssVar",{value:function(e,r){return r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"3U8gV":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"theme",{get:function(){return e.cssVar("--art-theme")},set:function(t){e.cssVar("--art-theme",t)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"699Bq":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"type",{get:function(){return e.option.type},set:function(t){e.option.type=t}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9MC3x":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=["mini","pip","fullscreen","fullscreenWeb"];(0,a.def)(e,"state",{get:function(){return t.find(function(t){return e[t]})||"standard"},set:function(r){for(var n=0;n0&&jc.clientWidth-m/2?(0,i.setStyle)(o,"left","".concat(c.clientWidth-m,"px")):(0,i.setStyle)(o,"left","".concat(t-m/2,"px"))}}(j):i.isMobile||(0,i.setStyle)(m,"display","none"),b&&(clearTimeout(u),u=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500)),s.label=3;case 3:return[2]}})}),function(e,r,n){return t.apply(this,arguments)})),(0,i.def)(e,"thumbnails",{get:function(){return e.option.thumbnails},set:function(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(u),u=null,p=null,f=!1,d=!1)}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],l0xd8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.option,r=e.storage,n=e.template,o=n.$video,s=n.$poster;for(var i in t.moreVideoAttr)e.attr(i,t.moreVideoAttr[i]);t.muted&&(e.muted=t.muted),t.volume&&(o.volume=(0,a.clamp)(t.volume,0,1));var c=r.get("volume");for(var l in"number"==typeof c&&(o.volume=(0,a.clamp)(c,0,1)),t.poster&&(0,a.setStyle)(s,"backgroundImage","url(".concat(t.poster,")")),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(l,t.cssVar[l]);e.url=t.url}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1WIo5":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../config"),c=o.interopDefault(i),l=e("../utils");function u(e){for(var t,r=e.i18n,n=e.notice,o=e.option,i=e.constructor,u=e.proxy,p=e.template,f=p.$player,d=p.$video,h=p.$poster,m=0,v=0;v=n.CONTROL_HIDE_TIME&&(r.show=!1)}),e.on("control",function(e){e?((0,D.removeClass)(a,"art-hide-cursor"),(0,D.addClass)(a,"art-hover"),r.timer=Date.now()):((0,D.addClass)(a,"art-hide-cursor"),(0,D.removeClass)(a,"art-hover"))}),r.init(),r}return(0,p._)(t,e),(0,c._)(t,[{key:"init",value:function(){var e=this,t=this.art.option;t.isLive||this.add((0,k.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,w.default)({name:"playAndPause",position:"left",index:10})),this.add((0,I.default)({name:"volume",position:"left",index:20})),t.isLive||this.add((0,T.default)({name:"time",position:"left",index:30})),t.quality.length&&(0,D.sleep)().then(function(){e.art.quality=t.quality}),t.screenshot&&!D.isMobile&&this.add((0,F.default)({name:"screenshot",position:"right",index:20})),t.setting&&this.add((0,M.default)({name:"setting",position:"right",index:30})),t.pip&&this.add((0,j.default)({name:"pip",position:"right",index:40})),t.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,A.default)({name:"airplay",position:"right",index:50})),t.fullscreenWeb&&this.add((0,y.default)({name:"fullscreenWeb",position:"right",index:60})),t.fullscreen&&this.add((0,v.default)({name:"fullscreen",position:"right",index:70}));for(var r=0;r=Number(a.dataset.index)});l?l.insertAdjacentElement("beforebegin",a):(0,i.append)(this.$parent,a),r.html&&(0,i.append)(a,r.html),r.style&&(0,i.setStyles)(a,r.style),r.tooltip&&(0,i.tooltip)(a,r.tooltip);var f=[];if(r.click){var d=this.art.events.proxy(a,"click",function(e){e.preventDefault(),r.click.call(t.art,t,e)});f.push(d)}return r.selector&&["left","right"].includes(r.position)&&this.selector(r,a,f),this[n]=a,this.cache.set(n,{$ref:a,events:f,option:r}),r.mounted&&r.mounted.call(this.art,a),a}}},{key:"remove",value:function(e){var t=this.cache.get(e);(0,c.errorHandle)(t,"Can't find [".concat(e,"] from the [").concat(this.name,"]")),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(var r=0;r\n
\n
\n
\n
\n
\n
\n\n ',mounted:function(e){var a=null,s=!1,u=(0,i.query)(".art-progress-hover",e),p=(0,i.query)(".art-progress-loaded",e),f=(0,i.query)(".art-progress-played",e),d=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function v(r,n){var o=n||c(t,r),a=o.width;m.innerText=o.time;var s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-s,"px")):(0,i.setStyle)(m,"left","".concat(a-s/2,"px"))}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,n,o){var s="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(p,"width","".concat(100*n,"%")),"hover"===r&&(0,i.setStyle)(u,"width","".concat(100*n,"%")),"played"===r&&((0,i.setStyle)(f,"width","".concat(100*n,"%")),(0,i.setStyle)(h,"left","".concat(100*n,"%"))),s&&((0,i.setStyle)(m,"display","flex"),v(o,{width:e.clientWidth*n,time:(0,i.secondToTime)(n*t.duration)}),clearTimeout(a),a=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){d.innerText="";for(var e=0;e');(0,i.append)(d,a)}}),t.constructor.USE_RAF?t.on("raf",function(){t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",function(){t.emit("setBar","played",t.played)}),t.on("video:progress",function(){t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",function(){t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",function(e){e.target!==h&&l(t,e)}),o(e,"mousemove",function(r){var n,o,a=c(t,r).percentage;(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,d))?(n=c(t,r).width,m.innerText=r.target.dataset.text,n<=(o=m.clientWidth)/2?(0,i.setStyle)(m,"left",0):n>e.clientWidth-o/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-o,"px")):(0,i.setStyle)(m,"left","".concat(n-o/2,"px"))):v(r)}),o(e,"mouseleave",function(e){(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",function(e){s=0===e.button}),t.on("document:mousemove",function(e){if(s){var r=c(t,e),n=r.second,o=r.percentage;t.emit("setBar","played",o,e),t.seek=n}}),t.on("document:mouseup",function(){s&&(s=!1)}))}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],goLby:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:function(e){function r(){var r="".concat((0,i.secondToTime)(t.currentTime)," / ").concat((0,i.secondToTime)(t.duration));r!==e.innerText&&(e.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o'),c=(0,i.append)(s,'
'),l=(0,i.append)(c,'
'),u=(0,i.append)(c,'
'),p=(0,i.append)(u,'
'),f=(0,i.append)(p,'
'),d=(0,i.append)(u,'
');function h(e){var t=(0,i.getRect)(u),r=t.top,n=t.height;return 1-(e.clientY-r)/n}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(a,"display","flex"),(0,i.setStyle)(d,"top","100%"),(0,i.setStyle)(f,"top","100%"),l.innerText=0;else{var e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(a,"display","none"),(0,i.setStyle)(d,"top","".concat(100-e,"%")),(0,i.setStyle)(f,"top","".concat(100-e,"%")),l.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",function(){t.muted=!0}),r(a,"click",function(){t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{var v=!1;r(u,"mousedown",function(e){v=0===e.button,t.volume=h(e)}),t.on("document:mousemove",function(e){v&&(t.muted=!1,t.volume=h(e))}),t.on("document:mouseup",function(){v&&(v=!1)})}}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kKnPP:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Show Setting"),mounted:function(e){var r=t.proxy,n=t.icons,o=t.i18n;(0,i.append)(e,n.setting),r(e,"click",function(){t.setting.toggle(),t.setting.resize()}),t.on("setting",function(t){(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aeKuL:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Screenshot"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.screenshot),r(e,"click",function(){t.screenshot()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8aY0p":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("AirPlay"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.airplay),r(e,"click",function(){return t.airplay()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dM9Mf:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return k});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("../utils"),u=e("../utils/component"),p=o.interopDefault(u),f=e("./playbackRate"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./flip"),g=o.interopDefault(v),y=e("./info"),b=o.interopDefault(y),j=e("./version"),_=o.interopDefault(j),w=e("./close"),x=o.interopDefault(w),k=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="contextmenu",r.$parent=e.template.$contextmenu,l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.option,n=t.proxy,o=t.template,a=o.$player,s=o.$contextmenu;r.playbackRate&&this.add((0,d.default)({name:"playbackRate",index:10})),r.aspectRatio&&this.add((0,m.default)({name:"aspectRatio",index:20})),r.flip&&this.add((0,g.default)({name:"flip",index:30})),this.add((0,b.default)({name:"info",index:40})),this.add((0,_.default)({name:"version",index:50})),this.add((0,x.default)({name:"close",index:60}));for(var i=0;iu+c&&(m=c-h),n+d>p+i&&(v=i-d),(0,l.setStyles)(s,{top:"".concat(v,"px"),left:"".concat(m,"px")})}}),n(a,"click",function(t){(0,l.includeFromEvent)(t,s)||(e.show=!1)}),this.art.on("blur",function(){e.show=!1})}}]),t}(p.default)},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../utils":"b2ThP","../utils/component":"axpVu","./playbackRate":"61GCm","./aspectRatio":"8m4GN","./flip":"ex4Tx","./info":"8zP29","./version":"aOnFp","./close":"hCr2L","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"61GCm":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.PLAYBACK_RATE.map(function(e){return'').concat(1===e?r.get("Normal"):e.toFixed(1),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Play Speed"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.playbackRate=Number(n),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",function(){var r=(0,i.queryAll)("span",e).find(function(e){return Number(e.dataset.value)===t.playbackRate});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8m4GN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.ASPECT_RATIO.map(function(e){return'').concat("default"===e?r.get("Default"):e,"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Aspect Ratio"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.aspectRatio=n,e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ex4Tx:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.FLIP.map(function(e){return'').concat(r.get((0,i.capitalize)(e)),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Video Flip"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.flip=n.toLowerCase(),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8zP29":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Video Info"),click:function(e){t.info.show=!0,e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aOnFp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return function(e){return(0,s._)((0,a._)({},e),{html:'ArtPlayer '.concat(i.version,"")})}});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../../package.json")},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../../package.json":"7XQup","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],hCr2L:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Close"),click:function(e){e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],jcSTc:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return p});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("./utils"),u=e("./utils/component"),p=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="info",l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor,o=t.template,a=o.$infoPanel,s=o.$infoClose,i=o.$video;r(s,"click",function(){e.show=!1});var c=null,u=(0,l.queryAll)("[data-video]",a)||[];this.art.on("destroy",function(){return clearTimeout(c)}),!function e(){for(var t=0;t\n ').concat(t.escape?(0,h.escape)(e):e,"\n")}).join("")}).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}},{key:"switch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this;return(0,a._)(function(){var n,o,a,s,i,c;return(0,d._)(this,function(l){switch(l.label){case 0:return o=(n=r.art).i18n,a=n.notice,s=n.option,i=(0,p._)((0,u._)({},s.subtitle,t),{url:e}),[4,r.init(i)];case 1:return c=l.sent(),t.name&&(a.show="".concat(o.get("Switch Subtitle"),": ").concat(t.name)),[2,c]}})})()}},{key:"createTrack",value:function(e,t){var r=this,n=this.art,o=n.template,a=n.proxy,s=n.option,i=o.$video,c=o.$track,l=(0,h.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=s.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=function(){r.art.emit("subtitleLoad",r.cues,r.option)},this.art.events.remove(this.destroyEvent),c.onload=null,(0,h.remove)(c),(0,h.append)(i,l),o.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",function(){return r.update()})}},{key:"init",value:function(e){var t=this;return(0,a._)(function(){var r,n,o;return(0,d._)(this,function(a){return(n=(r=t.art).notice,o=r.template.$subtitle,t.textTrack)?((0,y.default)(e,j.default.subtitle),e.url)?(t.option=e,t.style(e.style),[2,fetch(e.url).then(function(e){return e.arrayBuffer()}).then(function(t){var r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,h.getExt)(e.url)){case"srt":var n=(0,h.srtToVtt)(r),o=e.onVttLoad(n);return(0,h.vttToBlob)(o);case"ass":var a=(0,h.assToVtt)(r),s=e.onVttLoad(a);return(0,h.vttToBlob)(s);case"vtt":var i=e.onVttLoad(r);return(0,h.vttToBlob)(i);default:return e.url}}).then(function(e){return o.innerHTML="",t.url===e||(URL.revokeObjectURL(t.url),t.createTrack("metadata",e)),e}).catch(function(e){throw o.innerHTML="",n.show=e,e})]):[2]:[2,null]})})()}}]),t}(v.default)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@swc/helpers/cjs/_type_of.cjs":"9vrOw","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","./utils":"b2ThP","./utils/component":"axpVu","option-validator":"gfXqm","./scheme":"7A6gr","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dq2pN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return S});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./clickInit"),c=o.interopDefault(i),l=e("./hoverInit"),u=o.interopDefault(l),p=e("./moveInit"),f=o.interopDefault(p),d=e("./resizeInit"),h=o.interopDefault(d),m=e("./gestureInit"),v=o.interopDefault(m),g=e("./viewInit"),y=o.interopDefault(g),b=e("./documentInit"),j=o.interopDefault(b),_=e("./updateInit"),w=o.interopDefault(_),x=e("./restoreInit"),k=o.interopDefault(x),S=function(){"use strict";function e(t){(0,a._)(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,c.default)(t,this),(0,u.default)(t,this),(0,f.default)(t,this),(0,h.default)(t,this),(0,v.default)(t,this),(0,y.default)(t,this),(0,j.default)(t,this),(0,w.default)(t,this),(0,k.default)(t,this)}return(0,s._)(e,[{key:"proxy",value:function(e,t,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(t))return t.map(function(t){return n.proxy(e,t,r,o)});e.addEventListener(t,r,o);var a=function(){return e.removeEventListener(t,r,o)};return this.destroyEvents.push(a),a}},{key:"hover",value:function(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}},{key:"remove",value:function(e){var t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}},{key:"destroy",value:function(){for(var e=0;eMath.abs(a)&&2>Math.abs(o))return s;var i=180*Math.atan2(o,a)/Math.PI;return i>=-45&&i<45?s=4:i>=45&&i<135?s=1:i>=-135&&i<-45?s=2:(i>=135&&i<=180||i>=-180&&i<-135)&&(s=3),s}(l,u,o,s),d=[3,4].includes(f),h=[1,2].includes(f);if(d&&!e.isRotate||h&&e.isRotate){var m=(0,a.clamp)((o-l)/e.width,-1,1),v=(0,a.clamp)((s-u)/e.height,-1,1),g=e.isRotate?v:m,y=i===n?e.constructor.TOUCH_MOVE_RATIO:1,b=(0,a.clamp)(p+e.duration*g*y,0,e.duration);e.seek=b,e.emit("setBar","played",(0,a.clamp)(b/e.duration,0,1),t),e.notice.show="".concat((0,a.secondToTime)(b)," / ").concat((0,a.secondToTime)(e.duration))}}};e.option.gesture&&(t.proxy(n,"touchstart",function(e){i=n,f(e)}),t.proxy(n,"touchmove",d)),t.proxy(o,"touchstart",function(e){i=o,f(e)}),t.proxy(o,"touchmove",d),t.proxy(document,"touchend",function(){c&&(l=0,u=0,p=0,c=!1,i=null)})}}},{"../utils":"b2ThP","../control/progress":"V1ZQp","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ejGFW:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e,t){var r=e.option,n=e.constructor,o=e.template.$container,s=(0,a.throttle)(function(){e.emit("view",(0,a.isInViewport)(o,n.SCROLL_GAP))},n.SCROLL_TIME);t.proxy(window,"scroll",function(){return s()}),e.on("view",function(t){r.autoMini&&(e.mini=!t)})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"11fCO":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){t.proxy(document,"mousemove",function(t){e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",function(t){e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a6XAg:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){if(e.constructor.USE_RAF){var t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",function(){cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8OSVw":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],bFwyD:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./utils"),c=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.keys={},t.option.hotkey&&!i.isMobile&&this.init()}return(0,s._)(e,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor;this.add("Escape",function(){e.art.fullscreenWeb&&(e.art.fullscreenWeb=!1)}),this.add("Space",function(){e.art.toggle()}),this.add("ArrowLeft",function(){e.art.backward=n.SEEK_STEP}),this.add("ArrowUp",function(){e.art.volume+=n.VOLUME_STEP}),this.add("ArrowRight",function(){e.art.forward=n.SEEK_STEP}),this.add("ArrowDown",function(){e.art.volume-=n.VOLUME_STEP}),r(document,"keydown",function(t){if(e.art.isFocus){var r=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==r&&"TEXTAREA"!==r&&""!==n&&"true"!==n&&!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey){var o=e.keys[t.code];if(o){t.preventDefault();for(var a=0;a'},{}],pYOPx:[function(e,t,r,n){t.exports=''},{}],"9Ce7v":[function(e,t,r,n){t.exports=''},{}],jP8po:[function(e,t,r,n){t.exports=''},{}],"6qJgz":[function(e,t,r,n){t.exports=''},{}],w0y3C:[function(e,t,r,n){t.exports=''},{}],"38wNO":[function(e,t,r,n){t.exports=''},{}],"1ZHRu":[function(e,t,r,n){t.exports=''},{}],"7ow0e":[function(e,t,r,n){t.exports=''},{}],"1lkxY":[function(e,t,r,n){t.exports=''},{}],i49d6:[function(e,t,r,n){t.exports=''},{}],cmsy3:[function(e,t,r,n){t.exports=''},{}],ch53g:[function(e,t,r,n){t.exports=''},{}],"4GQVI":[function(e,t,r,n){t.exports=''},{}],fpn2n:[function(e,t,r,n){t.exports=''},{}],"7ZtmP":[function(e,t,r,n){t.exports=''},{}],"29rsS":[function(e,t,r,n){t.exports=''},{}],"1gXNA":[function(e,t,r,n){t.exports=''},{}],"1H4Nc":[function(e,t,r,n){t.exports=''},{}],ejF5C:[function(e,t,r,n){t.exports=''},{}],cSCUL:[function(e,t,r,n){t.exports=''},{}],fecYV:[function(e,t,r,n){t.exports=''},{}],"4umJD":[function(e,t,r,n){t.exports=''},{}],e9jva:[function(e,t,r,n){t.exports=''},{}],b95Il:[function(e,t,r,n){t.exports=''},{}],"2sSLq":[function(e,t,r,n){t.exports=''},{}],hliN0:[function(e,t,r,n){t.exports=''},{}],"90OCX":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return x});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_call_super.cjs"),i=e("@swc/helpers/cjs/_class_call_check.cjs"),c=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_inherits.cjs"),u=e("@swc/helpers/cjs/_to_consumable_array.cjs"),p=e("@swc/helpers/cjs/_ts_generator.cjs"),f=e("./flip"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./playbackRate"),g=o.interopDefault(v),y=e("./subtitleOffset"),b=o.interopDefault(y),j=e("../utils/component"),_=o.interopDefault(j),w=e("../utils"),x=function(e){"use strict";function t(e){(0,i._)(this,t);var r=(0,s._)(this,t,[e]),n=e.option,o=e.controls,a=e.template.$setting;return r.name="setting",r.$parent=a,r.id=0,r.active=null,r.cache=new Map,r.option=(0,u._)(r.builtin).concat((0,u._)(n.settings)),n.setting&&(r.format(),r.render(),e.on("blur",function(){r.show&&(r.show=!1,r.render())}),e.on("focus",function(e){var t=(0,w.includeFromEvent)(e,o.setting),n=(0,w.includeFromEvent)(e,r.$parent);!r.show||t||n||(r.show=!1,r.render())}),e.on("resize",function(){return r.resize()})),r}return(0,l._)(t,e),(0,c._)(t,[{key:"builtin",get:function(){var e=[],t=this.art.option;return t.playbackRate&&e.push((0,g.default)(this.art)),t.aspectRatio&&e.push((0,m.default)(this.art)),t.flip&&e.push((0,d.default)(this.art)),t.subtitleOffset&&e.push((0,b.default)(this.art)),e}},{key:"traverse",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.option,r=0;r0&&void 0!==arguments[0]?arguments[0]:this.option,r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=0;a0&&void 0!==arguments[0]?arguments[0]:"",t=null;return this.traverse(function(r){r.name===e&&(t=r)}),t}},{key:"resize",value:function(){var e=this.art,t=e.controls,r=e.constructor,n=r.SETTING_WIDTH,o=r.SETTING_ITEM_HEIGHT,a=e.template,s=a.$player,i=a.$setting;if(t.setting&&this.show){var c,l,u=(null==(l=this.active[0])||null==(c=l.$parent)?void 0:c.width)||n,p=(0,w.getRect)(t.setting),f=p.left,d=p.width,h=(0,w.getRect)(s),m=h.left,v=h.width,g=f-m+d/2-u/2,y=this.active===this.option?this.active.length*o:(this.active.length+1)*o;if((0,w.setStyle)(i,"height","".concat(y,"px")),(0,w.setStyle)(i,"width","".concat(u,"px")),this.art.isRotate||w.isMobile)return;g+u>v?((0,w.setStyle)(i,"left",null),(0,w.setStyle)(i,"right",null)):((0,w.setStyle)(i,"left","".concat(g,"px")),(0,w.setStyle)(i,"right","auto"))}}},{key:"inactivate",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:this.option;return t.push(e),this.format(),this.createItem(e),this.render(),e}},{key:"createHeader",value:function(e){var t=this;if(this.cache.has(e.$option)){var r=this.cache.get(e.$option),n=this.art,o=n.proxy,a=n.icons.arrowLeft,s=n.constructor.SETTING_ITEM_HEIGHT,i=(0,w.createElement)("div");(0,w.setStyle)(i,"height","".concat(s,"px")),(0,w.addClass)(i,"art-setting-item"),(0,w.addClass)(i,"art-setting-item-back");var c=(0,w.append)(i,'
'),l=(0,w.createElement)("div");(0,w.addClass)(l,"art-setting-item-left-icon"),(0,w.append)(l,a),(0,w.append)(c,l),(0,w.append)(c,e.$parent.html);var u=o(i,"click",function(){return t.render(e.$parents)});e.$parent.$events.push(u),(0,w.append)(r,i)}}},{key:"createItem",value:function(e){var t,r,n=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.cache.has(e.$option)){var s=this.cache.get(e.$option),i=e.$item,c="selector";(0,w.has)(e,"switch")&&(c="switch"),(0,w.has)(e,"range")&&(c="range"),(0,w.has)(e,"onClick")&&(c="button");var l=this.art,f=l.icons,d=l.proxy,h=l.constructor,m=(0,w.createElement)("div");(0,w.addClass)(m,"art-setting-item"),(0,w.setStyle)(m,"height","".concat(h.SETTING_ITEM_HEIGHT,"px")),m.dataset.name=e.name||"",m.dataset.value=e.value||"";var v=(0,w.append)(m,'
'),g=(0,w.append)(m,'
'),y=(0,w.createElement)("div");switch((0,w.addClass)(y,"art-setting-item-left-icon"),c){case"button":case"switch":case"range":(0,w.append)(y,e.icon||f.config);break;case"selector":(null==(t=e.selector)?void 0:t.length)?(0,w.append)(y,e.icon||f.config):(0,w.append)(y,f.check)}(0,w.append)(v,y),(0,w.def)(e,"$icon",{configurable:!0,get:function(){return y}}),(0,w.def)(e,"icon",{configurable:!0,get:function(){return y.innerHTML},set:function(e){y.innerHTML="",(0,w.append)(y,e)}});var b=(0,w.createElement)("div");(0,w.addClass)(b,"art-setting-item-left-text"),(0,w.append)(b,e.html||""),(0,w.append)(v,b),(0,w.def)(e,"$html",{configurable:!0,get:function(){return b}}),(0,w.def)(e,"html",{configurable:!0,get:function(){return b.innerHTML},set:function(e){b.innerHTML="",(0,w.append)(b,e)}});var j=(0,w.createElement)("div");switch((0,w.addClass)(j,"art-setting-item-right-tooltip"),(0,w.append)(j,e.tooltip||""),(0,w.append)(g,j),(0,w.def)(e,"$tooltip",{configurable:!0,get:function(){return j}}),(0,w.def)(e,"tooltip",{configurable:!0,get:function(){return j.innerHTML},set:function(e){j.innerHTML="",(0,w.append)(j,e)}}),c){case"switch":var _=(0,w.createElement)("div");(0,w.addClass)(_,"art-setting-item-right-icon");var x=(0,w.append)(_,f.switchOn),k=(0,w.append)(_,f.switchOff);(0,w.setStyle)(e.switch?k:x,"display","none"),(0,w.append)(g,_),(0,w.def)(e,"$switch",{configurable:!0,get:function(){return _}});var S=e.switch;(0,w.def)(e,"switch",{configurable:!0,get:function(){return S},set:function(e){S=e,e?((0,w.setStyle)(k,"display","none"),(0,w.setStyle)(x,"display",null)):((0,w.setStyle)(k,"display",null),(0,w.setStyle)(x,"display","none"))}});break;case"range":var T=(0,w.createElement)("div");(0,w.addClass)(T,"art-setting-item-right-icon");var E=(0,w.append)(T,'');E.value=e.range[0],E.min=e.range[1],E.max=e.range[2],E.step=e.range[3],(0,w.addClass)(E,"art-setting-range"),(0,w.append)(g,T),(0,w.def)(e,"$range",{configurable:!0,get:function(){return E}});var I=(0,u._)(e.range);(0,w.def)(e,"range",{configurable:!0,get:function(){return I},set:function(e){I=(0,u._)(e),E.value=e[0],E.min=e[1],E.max=e[2],E.step=e[3]}});break;case"selector":if(null==(r=e.selector)?void 0:r.length){var P=(0,w.createElement)("div");(0,w.addClass)(P,"art-setting-item-right-icon"),(0,w.append)(P,f.arrowRight),(0,w.append)(g,P)}}switch(c){case"switch":if(e.onSwitch){var M,C=this,F=d(m,"click",(M=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onSwitch.call(C.art,e,m,t)];case 1:return e.switch=r.sent(),[2]}})}),function(e){return M.apply(this,arguments)}));e.$events.push(F)}break;case"range":if(e.$range){if(e.onRange){var O,A=this,D=d(e.$range,"change",(O=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onRange.call(A.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return O.apply(this,arguments)}));e.$events.push(D)}if(e.onChange){var L,R=this,$=d(e.$range,"input",(L=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onChange.call(R.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return L.apply(this,arguments)}));e.$events.push($)}}break;case"selector":var z,V=this,q=d(m,"click",(z=(0,a._)(function(t){var r,n;return(0,p._)(this,function(o){switch(o.label){case 0:if(!(null==(r=e.selector)?void 0:r.length))return[3,1];return V.render(e.selector),[3,3];case 1:if(V.check(e),!e.$parent.onSelect)return[3,3];return n=e.$parent,[4,e.$parent.onSelect.call(V.art,e,m,t)];case 2:n.tooltip=o.sent(),o.label=3;case 3:return[2]}})}),function(e){return z.apply(this,arguments)}));e.$events.push(q),e.default&&(0,w.addClass)(m,"art-current");break;case"button":if(e.onClick){var H,N=this,Z=d(m,"click",(H=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onClick.call(N.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return H.apply(this,arguments)}));e.$events.push(Z)}}(0,w.def)(e,"$item",{configurable:!0,get:function(){return m}}),o?(0,w.replaceElement)(m,i):(0,w.append)(s,m),e.mounted&&setTimeout(function(){return e.mounted.call(n.art,e.$item,e)},0)}}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.option;if(this.active=e,this.cache.has(e)){var t=this.cache.get(e);(0,w.inverseClass)(t,"art-current")}else{var r,n=(0,w.createElement)("div");this.cache.set(e,n),(0,w.addClass)(n,"art-setting-panel"),(0,w.append)(this.$parent,n),(0,w.inverseClass)(n,"art-current"),(null==(r=e[0])?void 0:r.$parent)&&this.createHeader(e[0]);for(var o=0;oa&&lu)&&setTimeout(function(){(0,i.setStyle)(o,"width","".concat(u,"px")),(0,i.setStyle)(o,"height","".concat(l,"px")),(0,i.setStyle)(o,"transform-origin","0 0"),(0,i.setStyle)(o,"transform","rotate(90deg) translate(0, -".concat(l,"px)")),(0,i.addClass)(o,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},r.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(o,"art-auto-orientation")&&((0,i.removeClass)(o,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",(t=(0,a._)(function(e){var t,r,n,a,l,u,p,f,d;return(0,s._)(this,function(s){switch(s.label){case 0:if(!(null==(r=screen)||null==(t=r.orientation)?void 0:t.lock))return[2];if(n=screen.orientation.type,!e)return[3,3];if(a=c.videoWidth,l=c.videoHeight,p=(u=document.documentElement).clientWidth,f=u.clientHeight,!(a>l&&pf))return[3,2];return d=n.startsWith("portrait")?"landscape":"portrait",[4,screen.orientation.lock(d)];case 1:s.sent(),(0,i.addClass)(o,"art-auto-orientation-fullscreen"),s.label=2;case 2:return[3,5];case 3:if(!(0,i.hasClass)(o,"art-auto-orientation-fullscreen"))return[3,5];return[4,screen.orientation.lock(n)];case 4:s.sent(),(0,i.removeClass)(o,"art-auto-orientation-fullscreen"),s.label=5;case 5:return[2]}})}),function(e){return t.apply(this,arguments)})),{name:"autoOrientation",get state(){return(0,i.hasClass)(o,"art-auto-orientation")}}}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a1MWA:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.i18n,r=e.icons,n=e.storage,o=e.constructor,s=e.proxy,i=e.template.$poster,c=e.layers.add({name:"auto-playback",html:'\n
\n
\n
\n '}),l=(0,a.query)(".art-auto-playback-last",c),u=(0,a.query)(".art-auto-playback-jump",c),p=(0,a.query)(".art-auto-playback-close",c);(0,a.append)(p,r.close);var f=null;function d(){var r=(n.get("times")||{})[e.option.id||e.option.url];clearTimeout(f),(0,a.setStyle)(c,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,a.setStyle)(c,"display","flex"),l.innerText="".concat(t.get("Last Seen")," ").concat((0,a.secondToTime)(r)),u.innerText=t.get("Jump Play"),s(p,"click",function(){(0,a.setStyle)(c,"display","none")}),s(u,"click",function(){e.seek=r,e.play(),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(c,"display","none")}),e.once("video:timeupdate",function(){f=setTimeout(function(){(0,a.setStyle)(c,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",function(){if(e.playing){var t=n.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,n.set("times",t)}}),e.on("ready",d),e.on("restart",d),{name:"auto-playback",get times(){return n.get("times")||{}},clear:function(){return n.del("times")},delete:function(e){var t=n.get("times")||{};return delete t[e],n.set("times",t),t}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],c7yFC:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.proxy,n=e.template,o=n.$player,s=n.$video,i=null,c=!1,l=1,u=function(){clearTimeout(i),c&&(c=!1,e.playbackRate=l,(0,a.removeClass)(o,"art-fast-forward"))};return r(s,"touchstart",function(r){1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout(function(){c=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,a.addClass)(o,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",u),r(document,"touchend",u),{name:"fastForward",get state(){return(0,a.hasClass)(o,"art-fast-forward")}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lewgR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.layers,r=e.icons,n=e.template.$player;function o(){return(0,a.hasClass)(n,"art-lock")}function s(){(0,a.addClass)(n,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function i(){(0,a.removeClass)(n,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted:function(t){var n=(0,a.append)(t,r.lock),o=(0,a.append)(t,r.unlock);(0,a.setStyle)(n,"display","none"),e.on("lock",function(e){e?((0,a.setStyle)(n,"display","inline-flex"),(0,a.setStyle)(o,"display","none")):((0,a.setStyle)(n,"display","none"),(0,a.setStyle)(o,"display","inline-flex"))})},click:function(){o()?i():s()}}),{name:"lock",get state(){return o()},set state(value){value?s():i()}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}]},["bzF6W"],"bzF6W","parcelRequireb749",{}); \ No newline at end of file +!function(e,t,r,n,o,a,s,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof c[n]&&c[n],u=l.i||{},p=l.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof c[n]&&c[n];if(!r&&a)return a(t,!0);if(l)return l(t,!0);if(f&&"string"==typeof t)return f(t);var s=Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,u,i,i.exports,c)}return p[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=l,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=u,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h").concat(e))};i("Version@"+t.version);for(var c=0;c0)||void 0===arguments[0]||arguments[0];this.events.destroy(),this.template.destroy(e),er.splice(er.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return er}},{key:"version",get:function(){return l.version}},{key:"config",get:function(){return j.default}},{key:"utils",get:function(){return v}},{key:"scheme",get:function(){return b.default}},{key:"Emitter",get:function(){return m.default}},{key:"validator",get:function(){return d.default}},{key:"kindOf",get:function(){return d.default.kindOf}},{key:"html",get:function(){return w.default.html}},{key:"option",get:function(){var e;return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:function(e){return e}},moreVideoAttr:{controls:!1,preload:v.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:null==(e=navigator)?void 0:e.language.toLowerCase()}}}]),t}(m.default);en.STYLE=p.default,en.DEBUG=!1,en.CONTEXTMENU=!0,en.NOTICE_TIME=2e3,en.SETTING_WIDTH=250,en.SETTING_ITEM_WIDTH=200,en.SETTING_ITEM_HEIGHT=35,en.RESIZE_TIME=200,en.SCROLL_TIME=200,en.SCROLL_GAP=50,en.AUTO_PLAYBACK_MAX=10,en.AUTO_PLAYBACK_MIN=5,en.AUTO_PLAYBACK_TIMEOUT=3e3,en.RECONNECT_TIME_MAX=5,en.RECONNECT_SLEEP_TIME=1e3,en.CONTROL_HIDE_TIME=3e3,en.DBCLICK_TIME=300,en.DBCLICK_FULLSCREEN=!0,en.MOBILE_DBCLICK_PLAY=!0,en.MOBILE_CLICK_PLAY=!1,en.AUTO_ORIENTATION_TIME=200,en.INFO_LOOP_TIME=1e3,en.FAST_FORWARD_VALUE=3,en.FAST_FORWARD_TIME=1e3,en.TOUCH_MOVE_RATIO=.5,en.VOLUME_STEP=.1,en.SEEK_STEP=5,en.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],en.ASPECT_RATIO=["default","4:3","16:9"],en.FLIP=["normal","horizontal","vertical"],en.FULLSCREEN_WEB_IN_BODY=!1,en.LOG_VERSION=!0,en.USE_RAF=!1,v.isBrowser&&(window.Artplayer=en,v.setStyleText("artplayer-style",p.default),setTimeout(function(){en.LOG_VERSION&&console.log("%c ArtPlayer %c ".concat(en.version," %c https://artplayer.org"),"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../package.json":"7XQup","bundle-text:./style/index.less":"5ocQB","option-validator":"gfXqm","./utils/emitter":"5yEww","./utils":"b2ThP","./scheme":"7A6gr","./config":"fL7wI","./template":"phvND","./i18n":"cdQZN","./player":"2MjvF","./control":"5ma8b","./contextmenu":"dM9Mf","./info":"jcSTc","./subtitle":"kP0A3","./events":"dq2pN","./hotkey":"bFwyD","./layer":"kmc23","./loading":"kgaC4","./notice":"cKyIf","./mask":"20smU","./icons":"bwbJa","./setting":"90OCX","./storage":"5QsMA","./plugins":"5b6es","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aFrVF:[function(e,t,r,n){"use strict";var o=e("206ae600478262e1"),a=e("e9be447e8b980fc1"),s=e("3357997583474f25");r._=function(e,t,r){return t=o._(t),s._(e,a._()?Reflect.construct(t,r||[],o._(e).constructor):t.apply(e,r))}},{"206ae600478262e1":"cAaXX",e9be447e8b980fc1:"6eqqS","3357997583474f25":"fa3rG"}],cAaXX:[function(e,t,r,n){"use strict";function o(e){return r._=o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}r._=o},{}],"6eqqS":[function(e,t,r,n){"use strict";function o(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(r._=o=function(){return!!e})()}r._=o},{}],fa3rG:[function(e,t,r,n){"use strict";var o=e("2f044ca51fa80bb1"),a=e("95fbded20695b6ea");r._=function(e,t){return t&&("object"===a._(t)||"function"==typeof t)?t:o._(e)}},{"2f044ca51fa80bb1":"ckXPU","95fbded20695b6ea":"9vrOw"}],ckXPU:[function(e,t,r,n){"use strict";r._=function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},{}],"9vrOw":[function(e,t,r,n){"use strict";r._=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}},{}],"5Lt2s":[function(e,t,r,n){"use strict";r._=function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}},{}],fExy2:[function(e,t,r,n){"use strict";function o(e,t){for(var r=0;r","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"5ocQB":[function(e,t,r,n){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:rgba(0,0,0,.5);--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:rgba(255,255,255,.25);--art-hover-color:rgba(255,255,255,.25);--art-loaded-color:rgba(255,255,255,.25);--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:rgba(255,255,255,.5);--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:rgba(0,0,0,.85);--art-tip-background:rgba(0,0,0,.7);--art-scrollbar-size:4px;--art-scrollbar-background:rgba(255,255,255,.25);--art-scrollbar-background-hover:rgba(255,255,255,.5);--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;-ms-user-select:none;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:transparent;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;top:0;bottom:0;left:0;right:auto;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px rgba(0,0,0,.2),0 1px 2px -1px rgba(0,0,0,.2)}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:rgba(255,255,255,.25);justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;top:0;bottom:auto;left:0;right:0}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid rgba(255,255,255,.1);padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow-x:hidden;overflow-y:auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:rgba(255,255,255,.5)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{-ms-appearance:none;appearance:none;background-color:rgba(255,255,255,.2);outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid rgba(255,255,255,.1)}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;-ms-user-select:all;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;-ms-user-select:none;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px rgba(0,0,0,.5)}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:rgba(0,0,0,.25);justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow-x:hidden;overflow-y:auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:rgba(255,255,255,.1)}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid transparent;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],gfXqm:[function(e,t,r,n){var o=e("@swc/helpers/cjs/_type_of.cjs");t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==(0,o._)(Symbol.iterator)?function(e){return void 0===e?"undefined":(0,o._)(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":(0,o._)(e)})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===n(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(n(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function n(e){return e.constructor?e.constructor.name:null}function a(e,t){var n=21?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector(e)}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(t.querySelectorAll(e))}function c(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function u(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function f(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function h(e,t){for(var r in t)d(e,r,t[r]);return e}function m(e,t){var r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(n):n}function v(e){return Array.from(e.parentElement.children).filter(function(t){return t!==e})}function g(e,t){v(e).forEach(function(e){return l(e,t)}),c(e,t)}function b(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"top";a.isMobile||(e.setAttribute("aria-label",t),c(e,"hint--rounded"),c(e,"hint--".concat(r)))}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,a=r.top-t<=n&&r.top+r.height+t>=0,s=r.left-t<=o+t&&r.left+r.width+t>=0;return a&&s}function j(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function _(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=w("i");return c(r,"art-icon"),c(r,"art-icon-".concat(e)),p(r,t),r}function k(e,t){var r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function S(){var e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function T(e){return e.getBoundingClientRect()}function E(e,t){return new Promise(function(r,n){var o=new Image;o.onload=function(){if(t&&1!==t){var a=document.createElement("canvas"),s=a.getContext("2d");a.width=o.width*t,a.height=o.height*t,s.drawImage(o,0,0,a.width,a.height),a.toBlob(function(t){var o=URL.createObjectURL(t),a=new Image;a.onload=function(){r(a)},a.onerror=function(){URL.revokeObjectURL(o),n(Error("Image load failed: ".concat(e)))},a.src=o})}else r(o)},o.onerror=function(){n(Error("Image load failed: ".concat(e)))},o.src=e})}},{"./compatibility":"8NSoS","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8NSoS":[function(e,t,r,n){var o,a,s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"userAgent",function(){return i}),s.export(r,"isSafari",function(){return c}),s.export(r,"isWechat",function(){return l}),s.export(r,"isIE",function(){return u}),s.export(r,"isAndroid",function(){return p}),s.export(r,"isIOS",function(){return f}),s.export(r,"isIOS13",function(){return d}),s.export(r,"isMobile",function(){return h}),s.export(r,"isBrowser",function(){return m});var i=null!=(a=null==(o=globalThis)?void 0:o.CUSTOM_USER_AGENT)?a:"undefined"!=typeof navigator?navigator.userAgent:"",c=/^((?!chrome|android).)*safari/i.test(i),l=/MicroMessenger/i.test(i),u=/MSIE|Trident/i.test(i),p=/android/i.test(i),f=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,d=f||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,h=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||d,m="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lOuxs:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",function(){return c}),o.export(r,"errorHandle",function(){return l});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_inherits.cjs"),c=function(e){"use strict";function t(e,r){var n;return(0,s._)(this,t),n=(0,a._)(this,t,[e]),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n,r||n.constructor),n.name="ArtPlayerError",n}return(0,i._)(t,e),t}((0,e("@swc/helpers/cjs/_wrap_native_super.cjs")._)(Error));function l(e,t){if(!e)throw new c(t);return e}},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_wrap_native_super.cjs":"akKMe","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],akKMe:[function(e,t,r,n){"use strict";var o=e("a94182fa8bb55a"),a=e("3f24b40eec405e24"),s=e("7bc3453f771be53d"),i=e("d41aede23b6bd051");function c(e){var t="function"==typeof Map?new Map:void 0;return r._=c=function(e){if(null===e||!s._(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return o._(e,arguments,a._(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i._(r,e)},c(e)}r._=c},{a94182fa8bb55a:"rusRV","3f24b40eec405e24":"cAaXX","7bc3453f771be53d":"k1Uei",d41aede23b6bd051:"gBKVY"}],rusRV:[function(e,t,r,n){"use strict";var o=e("8b1faca180708ca4"),a=e("b6994c7e46a50bdb");function s(e,t,n){return o._()?r._=s=Reflect.construct:r._=s=function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&a._(o,r.prototype),o},s.apply(null,arguments)}r._=s},{"8b1faca180708ca4":"6eqqS",b6994c7e46a50bdb:"gBKVY"}],k1Uei:[function(e,t,r,n){"use strict";r._=function(e){return -1!==Function.toString.call(e).indexOf("[native code]")}},{}],"9JAsE":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,function(e,t,r){var n=r.slice(0,3);return 1===r.length&&(n=r+"00"),2===r.length&&(n=r+"0"),"".concat(t,",").concat(n)}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function s(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){var t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split(/[:.]/).map(function(e,t,r){if(t===r.length-1){if(1===e.length)return".".concat(e,"00");if(2===e.length)return".".concat(e,"0")}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?".".concat(e):":".concat(e)}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(function(e){var n=e.match(t);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(function(e){return e.trim()}).join("\n")}:null}).filter(function(e){return e}).map(function(e,t){return e?t+1+"\n"+"".concat(e.start," --\x3e ").concat(e.end)+"\n"+"".concat(e.text):""}).filter(function(e){return e.trim()}).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",function(){return a}),o.export(r,"vttToBlob",function(){return s}),o.export(r,"assToVtt",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dnHdh:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){var r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",function(){return function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}}),o.export(r,"download",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],fOScp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",function(){return i}),o.export(r,"has",function(){return l}),o.export(r,"get",function(){return u}),o.export(r,"mergeDeep",function(){return function e(){for(var t=arguments.length,r=Array(t),n=0;ne.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise(function(t){return setTimeout(t,e)})}function s(e,t){var r;return function(){for(var n=this,o=arguments.length,a=Array(o),s=0;s0?[t,r,n]:[r,n]).map(function(e){return e<10?"0".concat(e):String(e)}).join(":")}function c(e){return e.replace(/[&<>'"]/g,function(e){return({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e})}function l(e){var t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp("(".concat(Object.keys(t).join("|"),")"),"g");return e.replace(r,function(e){return t[e]||e})}o.defineInteropFlag(r),o.export(r,"clamp",function(){return a}),o.export(r,"capitalize",function(){return s}),o.export(r,"secondToTime",function(){return i}),o.export(r,"escape",function(){return c}),o.export(r,"unescape",function(){return l})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7A6gr":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",function(){return m});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils"),c="array",l="boolean",u="string",p="number",f="object",d="function";function h(e,t,r){return(0,i.errorHandle)(t===u||t===p||e instanceof Element,"".concat(r.join(".")," require '").concat(u,"' or 'Element' type"))}var m={html:h,disable:"?".concat(l),name:"?".concat(u),index:"?".concat(p),style:"?".concat(f),click:"?".concat(d),mounted:"?".concat(d),tooltip:"?".concat(u,"|").concat(p),width:"?".concat(p),selector:"?".concat(c),onSelect:"?".concat(d),switch:"?".concat(l),onSwitch:"?".concat(d),range:"?".concat(c),onRange:"?".concat(d),onChange:"?".concat(d)};r.default={id:u,container:h,url:u,poster:u,type:u,theme:u,lang:u,volume:p,isLive:l,muted:l,autoplay:l,autoSize:l,autoMini:l,loop:l,flip:l,playbackRate:l,aspectRatio:l,screenshot:l,setting:l,hotkey:l,pip:l,mutex:l,backdrop:l,fullscreen:l,fullscreenWeb:l,subtitleOffset:l,miniProgressBar:l,useSSR:l,playsInline:l,lock:l,gesture:l,fastForward:l,autoPlayback:l,autoOrientation:l,airplay:l,proxy:"?".concat(d),plugins:[d],layers:[m],contextmenu:[m],settings:[m],controls:[(0,s._)((0,a._)({},m),{position:function(e,t,r){var n=["top","left","right"];return(0,i.errorHandle)(n.includes(e),"".concat(r.join(".")," only accept ").concat(n.toString()," as parameters"))}})],quality:[{default:"?".concat(l),html:u,url:u}],highlight:[{time:p,text:u}],thumbnails:{url:u,number:p,column:p,width:p,height:p,scale:p},subtitle:{url:u,name:u,type:u,style:f,escape:l,encoding:u,onVttLoad:d},moreVideoAttr:f,i18n:f,icons:f,cssVar:f,customType:f}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7vaqr":[function(e,t,r,n){"use strict";var o=e("b3d0f206b721b857");r._=function(e){for(var t=1;t\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
'.concat(i.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
\nx\n
\n
\n
\n
[x]
\n
\n
\n\n ')}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../package.json":"7XQup","./utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],cdQZN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("../utils"),c=e("./zh-cn"),l=o.interopDefault(c),u=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.languages={"zh-cn":l.default},this.language={},this.update(t.option.i18n)}return(0,s._)(e,[{key:"init",value:function(){var e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}},{key:"get",value:function(e){return this.language[e]||e}},{key:"update",value:function(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../utils":"b2ThP","./zh-cn":"f0w6P","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],f0w6P:[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"2MjvF":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return ew});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("./urlMix"),i=o.interopDefault(s),c=e("./attrMix"),l=o.interopDefault(c),u=e("./playMix"),p=o.interopDefault(u),f=e("./pauseMix"),d=o.interopDefault(f),h=e("./toggleMix"),m=o.interopDefault(h),v=e("./seekMix"),g=o.interopDefault(v),b=e("./volumeMix"),y=o.interopDefault(b),j=e("./currentTimeMix"),_=o.interopDefault(j),w=e("./durationMix"),x=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),E=o.interopDefault(T),I=e("./aspectRatioMix"),P=o.interopDefault(I),M=e("./screenshotMix"),C=o.interopDefault(M),F=e("./fullscreenMix"),O=o.interopDefault(F),A=e("./fullscreenWebMix"),D=o.interopDefault(A),L=e("./pipMix"),R=o.interopDefault(L),$=e("./loadedMix"),z=o.interopDefault($),V=e("./playedMix"),q=o.interopDefault(V),H=e("./playingMix"),N=o.interopDefault(H),Z=e("./autoSizeMix"),B=o.interopDefault(Z),W=e("./rectMix"),U=o.interopDefault(W),Y=e("./flipMix"),X=o.interopDefault(Y),G=e("./miniMix"),K=o.interopDefault(G),J=e("./posterMix"),Q=o.interopDefault(J),ee=e("./autoHeightMix"),et=o.interopDefault(ee),er=e("./cssVarMix"),en=o.interopDefault(er),eo=e("./themeMix"),ea=o.interopDefault(eo),es=e("./typeMix"),ei=o.interopDefault(es),ec=e("./stateMix"),el=o.interopDefault(ec),eu=e("./subtitleOffsetMix"),ep=o.interopDefault(eu),ef=e("./airplayMix"),ed=o.interopDefault(ef),eh=e("./qualityMix"),em=o.interopDefault(eh),ev=e("./thumbnailsMix"),eg=o.interopDefault(ev),eb=e("./optionInit"),ey=o.interopDefault(eb),ej=e("./eventInit"),e_=o.interopDefault(ej),ew=function e(t){"use strict";(0,a._)(this,e),(0,i.default)(t),(0,l.default)(t),(0,p.default)(t),(0,d.default)(t),(0,m.default)(t),(0,g.default)(t),(0,y.default)(t),(0,_.default)(t),(0,x.default)(t),(0,S.default)(t),(0,E.default)(t),(0,P.default)(t),(0,C.default)(t),(0,O.default)(t),(0,D.default)(t),(0,R.default)(t),(0,z.default)(t),(0,q.default)(t),(0,N.default)(t),(0,B.default)(t),(0,U.default)(t),(0,X.default)(t),(0,K.default)(t),(0,Q.default)(t),(0,et.default)(t),(0,en.default)(t),(0,ea.default)(t),(0,ei.default)(t),(0,el.default)(t),(0,ep.default)(t),(0,ed.default)(t),(0,em.default)(t),(0,eg.default)(t),(0,e_.default)(t),(0,ey.default)(t)}},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","./urlMix":"brLGH","./attrMix":"4Gijp","./playMix":"TkS1b","./pauseMix":"6FrK0","./toggleMix":"ljXwE","./seekMix":"eXltp","./volumeMix":"2MkGB","./currentTimeMix":"3zu0H","./durationMix":"7DsNV","./switchMix":"iNRLI","./playbackRateMix":"gaUXG","./aspectRatioMix":"bliBr","./screenshotMix":"a0vr8","./fullscreenMix":"kxdxR","./fullscreenWebMix":"7gzYH","./pipMix":"5Q3PD","./loadedMix":"300dZ","./playedMix":"93dbl","./playingMix":"pmxRE","./autoSizeMix":"lwSCQ","./rectMix":"9vxAy","./flipMix":"h4E38","./miniMix":"bd6Da","./posterMix":"1MBAA","./autoHeightMix":"ktUvk","./cssVarMix":"iJjzq","./themeMix":"3U8gV","./typeMix":"699Bq","./stateMix":"9MC3x","./subtitleOffsetMix":"doLuv","./airplayMix":"1tHnW","./qualityMix":"2kVAq","./thumbnailsMix":"aPNcx","./optionInit":"l0xd8","./eventInit":"1WIo5","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],brLGH:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t=e.option,r=e.template.$video;(0,i.def)(e,"url",{get:function(){return r.src},set:function(n){return(0,a._)(function(){var o,a,c;return(0,s._)(this,function(s){switch(s.label){case 0:if(!n)return[3,4];if(o=e.url,a=t.type||(0,i.getExt)(n),c=t.customType[a],!(a&&c))return[3,2];return[4,(0,i.sleep)()];case 1:return s.sent(),e.loading.show=!0,c.call(e,r,n,e),[3,3];case 2:URL.revokeObjectURL(o),r.src=n,s.label=3;case 3:return o!==e.url&&(e.option.url=n,e.isReady&&o&&e.once("video:canplay",function(){e.emit("restart",n)})),[3,6];case 4:return[4,(0,i.sleep)()];case 5:s.sent(),e.loading.show=!0,s.label=6;case 6:return[2]}})})()}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,r,n){"use strict";function o(e,t,r,n,o,a,s){try{var i=e[a](s),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var s=e.apply(t,r);function i(e){o(s,n,a,i,c,"next",e)}function c(e){o(s,n,a,i,c,"throw",e)}i(void 0)})}}},{}],a4h1C:[function(e,t,r,n){"use strict";r._=e("3d8e14b4b7163380").__generator},{"3d8e14b4b7163380":"36MWs"}],"36MWs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return i}),o.export(r,"__assign",function(){return c}),o.export(r,"__rest",function(){return l}),o.export(r,"__decorate",function(){return u}),o.export(r,"__param",function(){return p}),o.export(r,"__esDecorate",function(){return f}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return h}),o.export(r,"__setFunctionName",function(){return m}),o.export(r,"__metadata",function(){return v}),o.export(r,"__awaiter",function(){return g}),o.export(r,"__generator",function(){return b}),o.export(r,"__createBinding",function(){return y}),o.export(r,"__exportStar",function(){return j}),o.export(r,"__values",function(){return _}),o.export(r,"__read",function(){return w}),o.export(r,"__spread",function(){return x}),o.export(r,"__spreadArrays",function(){return k}),o.export(r,"__spreadArray",function(){return S}),o.export(r,"__await",function(){return T}),o.export(r,"__asyncGenerator",function(){return E}),o.export(r,"__asyncDelegator",function(){return I}),o.export(r,"__asyncValues",function(){return P}),o.export(r,"__makeTemplateObject",function(){return M}),o.export(r,"__importStar",function(){return O}),o.export(r,"__importDefault",function(){return A}),o.export(r,"__classPrivateFieldGet",function(){return D}),o.export(r,"__classPrivateFieldSet",function(){return L}),o.export(r,"__classPrivateFieldIn",function(){return R}),o.export(r,"__addDisposableResource",function(){return $}),o.export(r,"__disposeResources",function(){return V}),o.export(r,"__rewriteRelativeImportExtension",function(){return q});var a=e("@swc/helpers/cjs/_type_of.cjs"),s=function(e,t){return(s=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function u(e,t,r,n){var o,s=arguments.length,i=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,a._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){return function(r,n){t(r,n,e)}}function f(e,t,r,n,o,s){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var c,l=n.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!t&&e?n.static?e:e.prototype:null,f=t||(p?Object.getOwnPropertyDescriptor(p,n.name):{}),d=!1,h=r.length-1;h>=0;h--){var m={};for(var v in n)m[v]="access"===v?{}:n[v];for(var v in n.access)m.access[v]=n.access[v];m.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");s.push(i(e||null))};var g=(0,r[h])("accessor"===l?{get:f.get,set:f.set}:f[u],m);if("accessor"===l){if(void 0===g)continue;if(null===g||(void 0===g?"undefined":(0,a._)(g))!=="object")throw TypeError("Object expected");(c=i(g.get))&&(f.get=c),(c=i(g.set))&&(f.set=c),(c=i(g.init))&&o.unshift(c)}else(c=i(g))&&("field"===l?o.unshift(c):f[u]=c)}p&&Object.defineProperty(p,n.name,f),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s}function x(){for(var e=[],t=0;t1||i(e,t)})},t&&(n[e]=t(n[e])))}function i(e,t){try{var r;(r=o[e](t)).value instanceof T?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}}function I(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:T(e[n](t)),done:!1}:o?o(t):t}:o}}function P(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=_(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var a,s,i;a=n,s=o,i=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){a({value:e,done:i})},s)})}}}function M(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},F=function(e){return(F=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=F(e),n=0;nu?((0,a.setStyle)(o,"width","".concat(u*l,"px")),(0,a.setStyle)(o,"height","100%"),(0,a.setStyle)(o,"margin","0 auto")):((0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","".concat(c/u,"px")),(0,a.setStyle)(o,"margin","auto 0")),s.dataset.aspectRatio=n}r.show="".concat(t.get("Aspect Ratio"),": ").concat("default"===n?t.get("Default"):n),e.emit("aspectRatio",n)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a0vr8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t,r=e.notice,n=e.template.$video,o=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),e(o.toDataURL("image/png"))}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"getBlobUrl",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob(function(t){e(URL.createObjectURL(t))})}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"screenshot",{value:(t=(0,a._)(function(t){var r,o;return(0,s._)(this,function(a){switch(a.label){case 0:return[4,e.getDataURL()];case 1:return r=a.sent(),o=t||"artplayer_".concat((0,i.secondToTime)(n.currentTime)),(0,i.download)(r,"".concat(o,".png")),e.emit("screenshot",r),[2,r]}})}),function(e){return t.apply(this,arguments)})})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kxdxR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../libs/screenfull"),c=o.interopDefault(i),l=e("../utils");function u(e){var t=e.i18n,r=e.notice,n=e.template,o=n.$video,i=n.$player,u=function(e){c.default.on("change",function(){e.emit("fullscreen",c.default.isFullscreen),c.default.isFullscreen?(e.state="fullscreen",(0,l.addClass)(i,"art-fullscreen")):(0,l.removeClass)(i,"art-fullscreen"),e.emit("resize")}),c.default.on("error",function(t){e.emit("fullscreenError",t)}),(0,l.def)(e,"fullscreen",{get:function(){return c.default.isFullscreen},set:function(e){return(0,a._)(function(){return(0,s._)(this,function(t){switch(t.label){case 0:if(!e)return[3,2];return[4,c.default.request(i)];case 1:return t.sent(),[3,4];case 2:return[4,c.default.exit()];case 3:t.sent(),t.label=4;case 4:return[2]}})})()}})},p=function(e){e.proxy(document,"webkitfullscreenchange",function(){e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,l.def)(e,"fullscreen",{get:function(){return document.fullscreenElement===o},set:function(t){t?(e.state="fullscreen",o.webkitEnterFullscreen()):o.webkitExitFullscreen()}})};e.once("video:loadedmetadata",function(){c.default.isEnabled?u(e):o.webkitSupportsFullscreen?p(e):(0,l.def)(e,"fullscreen",{get:function(){return!1},set:function(){r.show=t.get("Fullscreen Not Supported")}}),(0,l.def)(e,"fullscreen",(0,l.get)(e,"fullscreen"))})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../libs/screenfull":"6Yfu0","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"6Yfu0":[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("@swc/helpers/cjs/_sliced_to_array.cjs"),a=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],s=function(){if("undefined"==typeof document)return!1;var e=a[0],t={},r=!0,n=!1,s=void 0;try{for(var i,c=a[Symbol.iterator]();!(r=(i=c.next()).done);r=!0){var l=i.value;if(l[1]in document){var u=!0,p=!1,f=void 0;try{for(var d,h=l.entries()[Symbol.iterator]();!(u=(d=h.next()).done);u=!0){var m=(0,o._)(d.value,2),v=m[0],g=m[1];t[e[v]]=g}}catch(e){p=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(p)throw f}}return t}}}catch(e){n=!0,s=e}finally{try{r||null==c.return||c.return()}finally{if(n)throw s}}return!1}(),i={change:s.fullscreenchange,error:s.fullscreenerror},c={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.documentElement,t=arguments.length>1?arguments[1]:void 0;return new Promise(function(r,n){var o=function(){c.off("change",o),r()};c.on("change",o);var a=e[s.requestFullscreen](t);a instanceof Promise&&a.then(o).catch(n)})},exit:function(){return new Promise(function(e,t){if(!c.isFullscreen)return void e();var r=function(){c.off("change",r),e()};c.on("change",r);var n=document[s.exitFullscreen]();n instanceof Promise&&n.then(r).catch(t)})},toggle:function(e,t){return c.isFullscreen?c.exit():c.request(e,t)},onchange:function(e){c.on("change",e)},onerror:function(e){c.on("error",e)},on:function(e,t){var r=i[e];r&&document.addEventListener(r,t,!1)},off:function(e,t){var r=i[e];r&&document.removeEventListener(r,t,!1)},raw:s};Object.defineProperties(c,{isFullscreen:{get:function(){return!!document[s.fullscreenElement]}},element:{enumerable:!0,get:function(){return document[s.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return!!document[s.fullscreenEnabled]}}}),s||(c={isEnabled:!1}),r.default=c},{"@swc/helpers/cjs/_sliced_to_array.cjs":"69dwW","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"69dwW":[function(e,t,r,n){"use strict";var o=e("1c05c980d01d7095"),a=e("d604d0840046159b"),s=e("9ac1542249932d1a"),i=e("d04f777c592843b");r._=function(e,t){return o._(e)||a._(e,t)||i._(e,t)||s._()}},{"1c05c980d01d7095":"dgv90",d604d0840046159b:"8f1n5","9ac1542249932d1a":"edvMI",d04f777c592843b:"ikxEb"}],dgv90:[function(e,t,r,n){"use strict";r._=function(e){if(Array.isArray(e))return e}},{}],"8f1n5":[function(e,t,r,n){"use strict";r._=function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],s=!0,i=!1;try{for(o=o.call(e);!(s=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){i=!0,n=e}finally{try{s||null==o.return||o.return()}finally{if(i)throw n}}return a}}},{}],edvMI:[function(e,t,r,n){"use strict";r._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],"7gzYH":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.template,n=r.$container,o=r.$player,s="";(0,a.def)(e,"fullscreenWeb",{get:function(){return(0,a.hasClass)(o,"art-fullscreen-web")},set:function(r){r?(s=o.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(document.body,o),e.state="fullscreenWeb",(0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","100%"),(0,a.addClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(n,o),s&&(o.style.cssText=s,s=""),(0,a.removeClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"5Q3PD":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t,r,n,o,s=e.i18n,i=e.notice,c=e.template.$video;document.pictureInPictureEnabled?(t=e.template.$video,r=e.proxy,n=e.notice,t.disablePictureInPicture=!1,(0,a.def)(e,"pip",{get:function(){return document.pictureInPictureElement},set:function(r){r?(e.state="pip",t.requestPictureInPicture().catch(function(e){throw n.show=e,e})):document.exitPictureInPicture().catch(function(e){throw n.show=e,e})}}),r(t,"enterpictureinpicture",function(){e.emit("pip",!0)}),r(t,"leavepictureinpicture",function(){e.emit("pip",!1)})):c.webkitSupportsPresentationMode?((o=e.template.$video).webkitSetPresentationMode("inline"),(0,a.def)(e,"pip",{get:function(){return"picture-in-picture"===o.webkitPresentationMode},set:function(t){t?(e.state="pip",o.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(o.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})):(0,a.def)(e,"pip",{get:function(){return!1},set:function(){i.show=s.get("PIP Not Supported")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"300dZ":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"loaded",{get:function(){return e.loadedTime/t.duration}}),(0,a.def)(e,"loadedTime",{get:function(){return t.buffered.length?t.buffered.end(t.buffered.length-1):0}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"93dbl":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"played",{get:function(){return e.currentTime/e.duration}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],pmxRE:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"playing",{get:function(){return"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lwSCQ:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$player,o=t.$video;(0,a.def)(e,"autoSize",{value:function(){var t=o.videoWidth,s=o.videoHeight,i=(0,a.getRect)(r),c=i.width,l=i.height,u=t/s;c/l>u?((0,a.setStyle)(n,"width","".concat(l*u/c*100,"%")),(0,a.setStyle)(n,"height","100%")):((0,a.setStyle)(n,"width","100%"),(0,a.setStyle)(n,"height","".concat(c/u/l*100,"%"))),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9vxAy":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"rect",{get:function(){return(0,a.getRect)(e.template.$player)}});for(var t=["bottom","height","left","right","top","width"],r=0;r');(0,a.append)(d,t.close),r(d,"click",p);var h=(0,a.append)(s,'
'),m=(0,a.append)(h,t.play),v=(0,a.append)(h,t.pause);return r(m,"click",function(){return e.play()}),r(v,"click",function(){return e.pause()}),f(m,v),e.on("video:playing",function(){return f(m,v)}),e.on("video:pause",function(){return f(m,v)}),e.on("video:timeupdate",function(){return f(m,v)}),r(s,"mousedown",function(e){c=0===e.button,l=e.pageX,u=e.pageY}),e.on("document:mousemove",function(e){if(c){(0,a.addClass)(s,"art-mini-dragging");var t=e.pageX-l,r=e.pageY-u;(0,a.setStyle)(s,"transform","translate(".concat(t,"px, ").concat(r,"px)"))}}),e.on("document:mouseup",function(){if(c){c=!1,(0,a.removeClass)(s,"art-mini-dragging");var e=(0,a.getRect)(s);n.set("left",e.left),n.set("top",e.top),(0,a.setStyle)(s,"left","".concat(e.left,"px")),(0,a.setStyle)(s,"top","".concat(e.top,"px")),(0,a.setStyle)(s,"transform",null)}}),s}(),m=n.get("top"),v=n.get("left");"number"==typeof m&&"number"==typeof v?((0,a.setStyle)(h,"top","".concat(m,"px")),(0,a.setStyle)(h,"left","".concat(v,"px")),(0,a.isInViewport)(h)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1MBAA":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$poster;(0,a.def)(e,"poster",{get:function(){try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set:function(e){(0,a.setStyle)(t,"backgroundImage","url(".concat(e,")"))}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ktUvk:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$video;(0,a.def)(e,"autoHeight",{value:function(){var t=r.clientWidth,o=n.videoHeight,s=t/n.videoWidth*o;(0,a.setStyle)(r,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],iJjzq:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$player;(0,a.def)(e,"cssVar",{value:function(e,r){return r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"3U8gV":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"theme",{get:function(){return e.cssVar("--art-theme")},set:function(t){e.cssVar("--art-theme",t)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"699Bq":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"type",{get:function(){return e.option.type},set:function(t){e.option.type=t}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9MC3x":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=["mini","pip","fullscreen","fullscreenWeb"];(0,a.def)(e,"state",{get:function(){return t.find(function(t){return e[t]})||"standard"},set:function(r){for(var n=0;n0&&jc.clientWidth-m/2?(0,i.setStyle)(o,"left","".concat(c.clientWidth-m,"px")):(0,i.setStyle)(o,"left","".concat(t-m/2,"px"))}}(j):i.isMobile||(0,i.setStyle)(m,"display","none"),y&&(clearTimeout(u),u=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500)),s.label=3;case 3:return[2]}})}),function(e,r,n){return t.apply(this,arguments)})),(0,i.def)(e,"thumbnails",{get:function(){return e.option.thumbnails},set:function(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(u),u=null,p=null,f=!1,d=!1)}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],l0xd8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.option,r=e.storage,n=e.template,o=n.$video,s=n.$poster;for(var i in t.moreVideoAttr)e.attr(i,t.moreVideoAttr[i]);t.muted&&(e.muted=t.muted),t.volume&&(o.volume=(0,a.clamp)(t.volume,0,1));var c=r.get("volume");for(var l in"number"==typeof c&&(o.volume=(0,a.clamp)(c,0,1)),t.poster&&(0,a.setStyle)(s,"backgroundImage","url(".concat(t.poster,")")),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(l,t.cssVar[l]);e.url=t.url}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1WIo5":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../config"),c=o.interopDefault(i),l=e("../utils");function u(e){for(var t,r=e.i18n,n=e.notice,o=e.option,i=e.constructor,u=e.proxy,p=e.template,f=p.$player,d=p.$video,h=p.$poster,m=0,v=0;v=n.CONTROL_HIDE_TIME&&(r.show=!1)}),e.on("control",function(e){e?((0,D.removeClass)(a,"art-hide-cursor"),(0,D.addClass)(a,"art-hover"),r.timer=Date.now()):((0,D.addClass)(a,"art-hide-cursor"),(0,D.removeClass)(a,"art-hover"))}),r.init(),r}return(0,p._)(t,e),(0,c._)(t,[{key:"init",value:function(){var e=this,t=this.art.option;t.isLive||this.add((0,k.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,w.default)({name:"playAndPause",position:"left",index:10})),this.add((0,I.default)({name:"volume",position:"left",index:20})),t.isLive||this.add((0,T.default)({name:"time",position:"left",index:30})),t.quality.length&&(0,D.sleep)().then(function(){e.art.quality=t.quality}),t.screenshot&&!D.isMobile&&this.add((0,F.default)({name:"screenshot",position:"right",index:20})),t.setting&&this.add((0,M.default)({name:"setting",position:"right",index:30})),t.pip&&this.add((0,j.default)({name:"pip",position:"right",index:40})),t.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,A.default)({name:"airplay",position:"right",index:50})),t.fullscreenWeb&&this.add((0,b.default)({name:"fullscreenWeb",position:"right",index:60})),t.fullscreen&&this.add((0,v.default)({name:"fullscreen",position:"right",index:70}));for(var r=0;r=Number(a.dataset.index)});l?l.insertAdjacentElement("beforebegin",a):(0,i.append)(this.$parent,a),r.html&&(0,i.append)(a,r.html),r.style&&(0,i.setStyles)(a,r.style),r.tooltip&&(0,i.tooltip)(a,r.tooltip);var f=[];if(r.click){var d=this.art.events.proxy(a,"click",function(e){e.preventDefault(),r.click.call(t.art,t,e)});f.push(d)}return r.selector&&["left","right"].includes(r.position)&&this.selector(r,a,f),this[n]=a,this.cache.set(n,{$ref:a,events:f,option:r}),r.mounted&&r.mounted.call(this.art,a),a}}},{key:"remove",value:function(e){var t=this.cache.get(e);(0,c.errorHandle)(t,"Can't find [".concat(e,"] from the [").concat(this.name,"]")),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(var r=0;r\n
\n
\n
\n
\n
\n
\n\n ',mounted:function(e){var a=null,s=!1,u=(0,i.query)(".art-progress-hover",e),p=(0,i.query)(".art-progress-loaded",e),f=(0,i.query)(".art-progress-played",e),d=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function v(r,n){var o=n||c(t,r),a=o.width;m.innerText=o.time;var s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-s,"px")):(0,i.setStyle)(m,"left","".concat(a-s/2,"px"))}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,n,o){var s="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(p,"width","".concat(100*n,"%")),"hover"===r&&(0,i.setStyle)(u,"width","".concat(100*n,"%")),"played"===r&&((0,i.setStyle)(f,"width","".concat(100*n,"%")),(0,i.setStyle)(h,"left","".concat(100*n,"%"))),s&&((0,i.setStyle)(m,"display","flex"),v(o,{width:e.clientWidth*n,time:(0,i.secondToTime)(n*t.duration)}),clearTimeout(a),a=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){d.innerText="";for(var e=0;e');(0,i.append)(d,a)}}),t.constructor.USE_RAF?t.on("raf",function(){t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",function(){t.emit("setBar","played",t.played)}),t.on("video:progress",function(){t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",function(){t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",function(e){e.target!==h&&l(t,e)}),o(e,"mousemove",function(r){var n,o,a=c(t,r).percentage;(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,d))?(n=c(t,r).width,m.innerText=r.target.dataset.text,n<=(o=m.clientWidth)/2?(0,i.setStyle)(m,"left",0):n>e.clientWidth-o/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-o,"px")):(0,i.setStyle)(m,"left","".concat(n-o/2,"px"))):v(r)}),o(e,"mouseleave",function(e){(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",function(e){s=0===e.button}),t.on("document:mousemove",function(e){if(s){var r=c(t,e),n=r.second,o=r.percentage;t.emit("setBar","played",o,e),t.seek=n}}),t.on("document:mouseup",function(){s&&(s=!1)}))}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],goLby:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:function(e){function r(){var r="".concat((0,i.secondToTime)(t.currentTime)," / ").concat((0,i.secondToTime)(t.duration));r!==e.innerText&&(e.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o'),c=(0,i.append)(s,'
'),l=(0,i.append)(c,'
'),u=(0,i.append)(c,'
'),p=(0,i.append)(u,'
'),f=(0,i.append)(p,'
'),d=(0,i.append)(u,'
');function h(e){var t=(0,i.getRect)(u),r=t.top,n=t.height;return 1-(e.clientY-r)/n}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(a,"display","flex"),(0,i.setStyle)(d,"top","100%"),(0,i.setStyle)(f,"top","100%"),l.innerText=0;else{var e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(a,"display","none"),(0,i.setStyle)(d,"top","".concat(100-e,"%")),(0,i.setStyle)(f,"top","".concat(100-e,"%")),l.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",function(){t.muted=!0}),r(a,"click",function(){t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{var v=!1;r(u,"mousedown",function(e){v=0===e.button,t.volume=h(e)}),t.on("document:mousemove",function(e){v&&(t.muted=!1,t.volume=h(e))}),t.on("document:mouseup",function(){v&&(v=!1)})}}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kKnPP:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Show Setting"),mounted:function(e){var r=t.proxy,n=t.icons,o=t.i18n;(0,i.append)(e,n.setting),r(e,"click",function(){t.setting.toggle(),t.setting.resize()}),t.on("setting",function(t){(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aeKuL:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Screenshot"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.screenshot),r(e,"click",function(){t.screenshot()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8aY0p":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("AirPlay"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.airplay),r(e,"click",function(){return t.airplay()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dM9Mf:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return k});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("../utils"),u=e("../utils/component"),p=o.interopDefault(u),f=e("./playbackRate"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./flip"),g=o.interopDefault(v),b=e("./info"),y=o.interopDefault(b),j=e("./version"),_=o.interopDefault(j),w=e("./close"),x=o.interopDefault(w),k=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="contextmenu",r.$parent=e.template.$contextmenu,l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.option,n=t.proxy,o=t.template,a=o.$player,s=o.$contextmenu;r.playbackRate&&this.add((0,d.default)({name:"playbackRate",index:10})),r.aspectRatio&&this.add((0,m.default)({name:"aspectRatio",index:20})),r.flip&&this.add((0,g.default)({name:"flip",index:30})),this.add((0,y.default)({name:"info",index:40})),this.add((0,_.default)({name:"version",index:50})),this.add((0,x.default)({name:"close",index:60}));for(var i=0;iu+c&&(m=c-h),n+d>p+i&&(v=i-d),(0,l.setStyles)(s,{top:"".concat(v,"px"),left:"".concat(m,"px")})}}),n(a,"click",function(t){(0,l.includeFromEvent)(t,s)||(e.show=!1)}),this.art.on("blur",function(){e.show=!1})}}]),t}(p.default)},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../utils":"b2ThP","../utils/component":"axpVu","./playbackRate":"61GCm","./aspectRatio":"8m4GN","./flip":"ex4Tx","./info":"8zP29","./version":"aOnFp","./close":"hCr2L","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"61GCm":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.PLAYBACK_RATE.map(function(e){return'').concat(1===e?r.get("Normal"):e.toFixed(1),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Play Speed"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.playbackRate=Number(n),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",function(){var r=(0,i.queryAll)("span",e).find(function(e){return Number(e.dataset.value)===t.playbackRate});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8m4GN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.ASPECT_RATIO.map(function(e){return'').concat("default"===e?r.get("Default"):e,"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Aspect Ratio"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.aspectRatio=n,e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ex4Tx:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.FLIP.map(function(e){return'').concat(r.get((0,i.capitalize)(e)),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Video Flip"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.flip=n.toLowerCase(),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8zP29":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Video Info"),click:function(e){t.info.show=!0,e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aOnFp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return function(e){return(0,s._)((0,a._)({},e),{html:'ArtPlayer '.concat(i.version,"")})}});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../../package.json")},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../../package.json":"7XQup","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],hCr2L:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Close"),click:function(e){e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],jcSTc:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return p});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("./utils"),u=e("./utils/component"),p=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="info",l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor,o=t.template,a=o.$infoPanel,s=o.$infoClose,i=o.$video;r(s,"click",function(){e.show=!1});var c=null,u=(0,l.queryAll)("[data-video]",a)||[];this.art.on("destroy",function(){return clearTimeout(c)}),!function e(){for(var t=0;t\n ').concat(t.escape?(0,h.escape)(e):e,"\n")}).join("")}).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}},{key:"switch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this;return(0,a._)(function(){var n,o,a,s,i,c;return(0,d._)(this,function(l){switch(l.label){case 0:return o=(n=r.art).i18n,a=n.notice,s=n.option,i=(0,p._)((0,u._)({},s.subtitle,t),{url:e}),[4,r.init(i)];case 1:return c=l.sent(),t.name&&(a.show="".concat(o.get("Switch Subtitle"),": ").concat(t.name)),[2,c]}})})()}},{key:"createTrack",value:function(e,t){var r=this,n=this.art,o=n.template,a=n.proxy,s=n.option,i=o.$video,c=o.$track,l=(0,h.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=s.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=function(){r.art.emit("subtitleLoad",r.cues,r.option)},this.art.events.remove(this.destroyEvent),c.onload=null,(0,h.remove)(c),(0,h.append)(i,l),o.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",function(){return r.update()})}},{key:"init",value:function(e){var t=this;return(0,a._)(function(){var r,n,o;return(0,d._)(this,function(a){return(n=(r=t.art).notice,o=r.template.$subtitle,t.textTrack)?((0,b.default)(e,j.default.subtitle),e.url)?(t.option=e,t.style(e.style),[2,fetch(e.url).then(function(e){return e.arrayBuffer()}).then(function(t){var r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,h.getExt)(e.url)){case"srt":var n=(0,h.srtToVtt)(r),o=e.onVttLoad(n);return(0,h.vttToBlob)(o);case"ass":var a=(0,h.assToVtt)(r),s=e.onVttLoad(a);return(0,h.vttToBlob)(s);case"vtt":var i=e.onVttLoad(r);return(0,h.vttToBlob)(i);default:return e.url}}).then(function(e){return o.innerHTML="",t.url===e||(URL.revokeObjectURL(t.url),t.createTrack("metadata",e)),e}).catch(function(e){throw o.innerHTML="",n.show=e,e})]):[2]:[2,null]})})()}}]),t}(v.default)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@swc/helpers/cjs/_type_of.cjs":"9vrOw","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","./utils":"b2ThP","./utils/component":"axpVu","option-validator":"gfXqm","./scheme":"7A6gr","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dq2pN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return S});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./clickInit"),c=o.interopDefault(i),l=e("./hoverInit"),u=o.interopDefault(l),p=e("./moveInit"),f=o.interopDefault(p),d=e("./resizeInit"),h=o.interopDefault(d),m=e("./gestureInit"),v=o.interopDefault(m),g=e("./viewInit"),b=o.interopDefault(g),y=e("./documentInit"),j=o.interopDefault(y),_=e("./updateInit"),w=o.interopDefault(_),x=e("./restoreInit"),k=o.interopDefault(x),S=function(){"use strict";function e(t){(0,a._)(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,c.default)(t,this),(0,u.default)(t,this),(0,f.default)(t,this),(0,h.default)(t,this),(0,v.default)(t,this),(0,b.default)(t,this),(0,j.default)(t,this),(0,w.default)(t,this),(0,k.default)(t,this)}return(0,s._)(e,[{key:"proxy",value:function(e,t,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(t))return t.map(function(t){return n.proxy(e,t,r,o)});e.addEventListener(t,r,o);var a=function(){return e.removeEventListener(t,r,o)};return this.destroyEvents.push(a),a}},{key:"hover",value:function(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}},{key:"remove",value:function(e){var t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}},{key:"destroy",value:function(){for(var e=0;eMath.abs(a)&&2>Math.abs(o))return s;var i=180*Math.atan2(o,a)/Math.PI;return i>=-45&&i<45?s=4:i>=45&&i<135?s=1:i>=-135&&i<-45?s=2:(i>=135&&i<=180||i>=-180&&i<-135)&&(s=3),s}(l,u,o,s),d=[3,4].includes(f),h=[1,2].includes(f);if(d&&!e.isRotate||h&&e.isRotate){var m=(0,a.clamp)((o-l)/e.width,-1,1),v=(0,a.clamp)((s-u)/e.height,-1,1),g=e.isRotate?v:m,b=i===n?e.constructor.TOUCH_MOVE_RATIO:1,y=(0,a.clamp)(p+e.duration*g*b,0,e.duration);e.seek=y,e.emit("setBar","played",(0,a.clamp)(y/e.duration,0,1),t),e.notice.show="".concat((0,a.secondToTime)(y)," / ").concat((0,a.secondToTime)(e.duration))}}};e.option.gesture&&(t.proxy(n,"touchstart",function(e){i=n,f(e)}),t.proxy(n,"touchmove",d)),t.proxy(o,"touchstart",function(e){i=o,f(e)}),t.proxy(o,"touchmove",d),t.proxy(document,"touchend",function(){c&&(l=0,u=0,p=0,c=!1,i=null)})}}},{"../utils":"b2ThP","../control/progress":"V1ZQp","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ejGFW:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e,t){var r=e.option,n=e.constructor,o=e.template.$container,s=(0,a.throttle)(function(){e.emit("view",(0,a.isInViewport)(o,n.SCROLL_GAP))},n.SCROLL_TIME);t.proxy(window,"scroll",function(){return s()}),e.on("view",function(t){r.autoMini&&(e.mini=!t)})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"11fCO":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){t.proxy(document,"mousemove",function(t){e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",function(t){e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a6XAg:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){if(e.constructor.USE_RAF){var t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",function(){cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8OSVw":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],bFwyD:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./utils"),c=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.keys={},t.option.hotkey&&!i.isMobile&&this.init()}return(0,s._)(e,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor;this.add("Escape",function(){e.art.fullscreenWeb&&(e.art.fullscreenWeb=!1)}),this.add("Space",function(){e.art.toggle()}),this.add("ArrowLeft",function(){e.art.backward=n.SEEK_STEP}),this.add("ArrowUp",function(){e.art.volume+=n.VOLUME_STEP}),this.add("ArrowRight",function(){e.art.forward=n.SEEK_STEP}),this.add("ArrowDown",function(){e.art.volume-=n.VOLUME_STEP}),r(document,"keydown",function(t){if(e.art.isFocus){var r=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==r&&"TEXTAREA"!==r&&""!==n&&"true"!==n&&!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey){var o=e.keys[t.code];if(o){t.preventDefault();for(var a=0;a'},{}],pYOPx:[function(e,t,r,n){t.exports=''},{}],"9Ce7v":[function(e,t,r,n){t.exports=''},{}],jP8po:[function(e,t,r,n){t.exports=''},{}],"6qJgz":[function(e,t,r,n){t.exports=''},{}],w0y3C:[function(e,t,r,n){t.exports=''},{}],"38wNO":[function(e,t,r,n){t.exports=''},{}],"1ZHRu":[function(e,t,r,n){t.exports=''},{}],"7ow0e":[function(e,t,r,n){t.exports=''},{}],"1lkxY":[function(e,t,r,n){t.exports=''},{}],i49d6:[function(e,t,r,n){t.exports=''},{}],cmsy3:[function(e,t,r,n){t.exports=''},{}],ch53g:[function(e,t,r,n){t.exports=''},{}],"4GQVI":[function(e,t,r,n){t.exports=''},{}],fpn2n:[function(e,t,r,n){t.exports=''},{}],"7ZtmP":[function(e,t,r,n){t.exports=''},{}],"29rsS":[function(e,t,r,n){t.exports=''},{}],"1gXNA":[function(e,t,r,n){t.exports=''},{}],"1H4Nc":[function(e,t,r,n){t.exports=''},{}],ejF5C:[function(e,t,r,n){t.exports=''},{}],cSCUL:[function(e,t,r,n){t.exports=''},{}],fecYV:[function(e,t,r,n){t.exports=''},{}],"4umJD":[function(e,t,r,n){t.exports=''},{}],e9jva:[function(e,t,r,n){t.exports=''},{}],b95Il:[function(e,t,r,n){t.exports=''},{}],"2sSLq":[function(e,t,r,n){t.exports=''},{}],hliN0:[function(e,t,r,n){t.exports=''},{}],"90OCX":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return x});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_call_super.cjs"),i=e("@swc/helpers/cjs/_class_call_check.cjs"),c=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_inherits.cjs"),u=e("@swc/helpers/cjs/_to_consumable_array.cjs"),p=e("@swc/helpers/cjs/_ts_generator.cjs"),f=e("./flip"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./playbackRate"),g=o.interopDefault(v),b=e("./subtitleOffset"),y=o.interopDefault(b),j=e("../utils/component"),_=o.interopDefault(j),w=e("../utils"),x=function(e){"use strict";function t(e){(0,i._)(this,t);var r=(0,s._)(this,t,[e]),n=e.option,o=e.controls,a=e.template.$setting;return r.name="setting",r.$parent=a,r.id=0,r.active=null,r.cache=new Map,r.option=(0,u._)(r.builtin).concat((0,u._)(n.settings)),n.setting&&(r.format(),r.render(),e.on("blur",function(){r.show&&(r.show=!1,r.render())}),e.on("focus",function(e){var t=(0,w.includeFromEvent)(e,o.setting),n=(0,w.includeFromEvent)(e,r.$parent);!r.show||t||n||(r.show=!1,r.render())}),e.on("resize",function(){return r.resize()})),r}return(0,l._)(t,e),(0,c._)(t,[{key:"builtin",get:function(){var e=[],t=this.art.option;return t.playbackRate&&e.push((0,g.default)(this.art)),t.aspectRatio&&e.push((0,m.default)(this.art)),t.flip&&e.push((0,d.default)(this.art)),t.subtitleOffset&&e.push((0,y.default)(this.art)),e}},{key:"traverse",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.option,r=0;r0&&void 0!==arguments[0]?arguments[0]:this.option,r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=0;a0&&void 0!==arguments[0]?arguments[0]:"",t=null;return this.traverse(function(r){r.name===e&&(t=r)}),t}},{key:"resize",value:function(){var e=this.art,t=e.controls,r=e.constructor,n=r.SETTING_WIDTH,o=r.SETTING_ITEM_HEIGHT,a=e.template,s=a.$player,i=a.$setting;if(t.setting&&this.show){var c,l,u=(null==(l=this.active[0])||null==(c=l.$parent)?void 0:c.width)||n,p=(0,w.getRect)(t.setting),f=p.left,d=p.width,h=(0,w.getRect)(s),m=h.left,v=h.width,g=f-m+d/2-u/2,b=this.active===this.option?this.active.length*o:(this.active.length+1)*o;if((0,w.setStyle)(i,"height","".concat(b,"px")),(0,w.setStyle)(i,"width","".concat(u,"px")),this.art.isRotate||w.isMobile)return;g+u>v?((0,w.setStyle)(i,"left",null),(0,w.setStyle)(i,"right",null)):((0,w.setStyle)(i,"left","".concat(g,"px")),(0,w.setStyle)(i,"right","auto"))}}},{key:"inactivate",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:this.option;return t.push(e),this.format(),this.createItem(e),this.render(),e}},{key:"createHeader",value:function(e){var t=this;if(this.cache.has(e.$option)){var r=this.cache.get(e.$option),n=this.art,o=n.proxy,a=n.icons.arrowLeft,s=n.constructor.SETTING_ITEM_HEIGHT,i=(0,w.createElement)("div");(0,w.setStyle)(i,"height","".concat(s,"px")),(0,w.addClass)(i,"art-setting-item"),(0,w.addClass)(i,"art-setting-item-back");var c=(0,w.append)(i,'
'),l=(0,w.createElement)("div");(0,w.addClass)(l,"art-setting-item-left-icon"),(0,w.append)(l,a),(0,w.append)(c,l),(0,w.append)(c,e.$parent.html);var u=o(i,"click",function(){return t.render(e.$parents)});e.$parent.$events.push(u),(0,w.append)(r,i)}}},{key:"createItem",value:function(e){var t,r,n=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.cache.has(e.$option)){var s=this.cache.get(e.$option),i=e.$item,c="selector";(0,w.has)(e,"switch")&&(c="switch"),(0,w.has)(e,"range")&&(c="range"),(0,w.has)(e,"onClick")&&(c="button");var l=this.art,f=l.icons,d=l.proxy,h=l.constructor,m=(0,w.createElement)("div");(0,w.addClass)(m,"art-setting-item"),(0,w.setStyle)(m,"height","".concat(h.SETTING_ITEM_HEIGHT,"px")),m.dataset.name=e.name||"",m.dataset.value=e.value||"";var v=(0,w.append)(m,'
'),g=(0,w.append)(m,'
'),b=(0,w.createElement)("div");switch((0,w.addClass)(b,"art-setting-item-left-icon"),c){case"button":case"switch":case"range":(0,w.append)(b,e.icon||f.config);break;case"selector":(null==(t=e.selector)?void 0:t.length)?(0,w.append)(b,e.icon||f.config):(0,w.append)(b,f.check)}(0,w.append)(v,b),(0,w.def)(e,"$icon",{configurable:!0,get:function(){return b}}),(0,w.def)(e,"icon",{configurable:!0,get:function(){return b.innerHTML},set:function(e){b.innerHTML="",(0,w.append)(b,e)}});var y=(0,w.createElement)("div");(0,w.addClass)(y,"art-setting-item-left-text"),(0,w.append)(y,e.html||""),(0,w.append)(v,y),(0,w.def)(e,"$html",{configurable:!0,get:function(){return y}}),(0,w.def)(e,"html",{configurable:!0,get:function(){return y.innerHTML},set:function(e){y.innerHTML="",(0,w.append)(y,e)}});var j=(0,w.createElement)("div");switch((0,w.addClass)(j,"art-setting-item-right-tooltip"),(0,w.append)(j,e.tooltip||""),(0,w.append)(g,j),(0,w.def)(e,"$tooltip",{configurable:!0,get:function(){return j}}),(0,w.def)(e,"tooltip",{configurable:!0,get:function(){return j.innerHTML},set:function(e){j.innerHTML="",(0,w.append)(j,e)}}),c){case"switch":var _=(0,w.createElement)("div");(0,w.addClass)(_,"art-setting-item-right-icon");var x=(0,w.append)(_,f.switchOn),k=(0,w.append)(_,f.switchOff);(0,w.setStyle)(e.switch?k:x,"display","none"),(0,w.append)(g,_),(0,w.def)(e,"$switch",{configurable:!0,get:function(){return _}});var S=e.switch;(0,w.def)(e,"switch",{configurable:!0,get:function(){return S},set:function(e){S=e,e?((0,w.setStyle)(k,"display","none"),(0,w.setStyle)(x,"display",null)):((0,w.setStyle)(k,"display",null),(0,w.setStyle)(x,"display","none"))}});break;case"range":var T=(0,w.createElement)("div");(0,w.addClass)(T,"art-setting-item-right-icon");var E=(0,w.append)(T,'');E.value=e.range[0],E.min=e.range[1],E.max=e.range[2],E.step=e.range[3],(0,w.addClass)(E,"art-setting-range"),(0,w.append)(g,T),(0,w.def)(e,"$range",{configurable:!0,get:function(){return E}});var I=(0,u._)(e.range);(0,w.def)(e,"range",{configurable:!0,get:function(){return I},set:function(e){I=(0,u._)(e),E.value=e[0],E.min=e[1],E.max=e[2],E.step=e[3]}});break;case"selector":if(null==(r=e.selector)?void 0:r.length){var P=(0,w.createElement)("div");(0,w.addClass)(P,"art-setting-item-right-icon"),(0,w.append)(P,f.arrowRight),(0,w.append)(g,P)}}switch(c){case"switch":if(e.onSwitch){var M,C=this,F=d(m,"click",(M=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onSwitch.call(C.art,e,m,t)];case 1:return e.switch=r.sent(),[2]}})}),function(e){return M.apply(this,arguments)}));e.$events.push(F)}break;case"range":if(e.$range){if(e.onRange){var O,A=this,D=d(e.$range,"change",(O=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onRange.call(A.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return O.apply(this,arguments)}));e.$events.push(D)}if(e.onChange){var L,R=this,$=d(e.$range,"input",(L=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onChange.call(R.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return L.apply(this,arguments)}));e.$events.push($)}}break;case"selector":var z,V=this,q=d(m,"click",(z=(0,a._)(function(t){var r,n;return(0,p._)(this,function(o){switch(o.label){case 0:if(!(null==(r=e.selector)?void 0:r.length))return[3,1];return V.render(e.selector),[3,3];case 1:if(V.check(e),!e.$parent.onSelect)return[3,3];return n=e.$parent,[4,e.$parent.onSelect.call(V.art,e,m,t)];case 2:n.tooltip=o.sent(),o.label=3;case 3:return[2]}})}),function(e){return z.apply(this,arguments)}));e.$events.push(q),e.default&&(0,w.addClass)(m,"art-current");break;case"button":if(e.onClick){var H,N=this,Z=d(m,"click",(H=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onClick.call(N.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return H.apply(this,arguments)}));e.$events.push(Z)}}(0,w.def)(e,"$item",{configurable:!0,get:function(){return m}}),o?(0,w.replaceElement)(m,i):(0,w.append)(s,m),e.mounted&&setTimeout(function(){return e.mounted.call(n.art,e.$item,e)},0)}}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.option;if(this.active=e,this.cache.has(e)){var t=this.cache.get(e);(0,w.inverseClass)(t,"art-current")}else{var r,n=(0,w.createElement)("div");this.cache.set(e,n),(0,w.addClass)(n,"art-setting-panel"),(0,w.append)(this.$parent,n),(0,w.inverseClass)(n,"art-current"),(null==(r=e[0])?void 0:r.$parent)&&this.createHeader(e[0]);for(var o=0;oa&&lu)&&setTimeout(function(){(0,i.setStyle)(o,"width","".concat(u,"px")),(0,i.setStyle)(o,"height","".concat(l,"px")),(0,i.setStyle)(o,"transform-origin","0 0"),(0,i.setStyle)(o,"transform","rotate(90deg) translate(0, -".concat(l,"px)")),(0,i.addClass)(o,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},r.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(o,"art-auto-orientation")&&((0,i.removeClass)(o,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",(t=(0,a._)(function(e){var t,r,n,a,l,u,p,f,d;return(0,s._)(this,function(s){switch(s.label){case 0:if(!(null==(r=screen)||null==(t=r.orientation)?void 0:t.lock))return[2];if(n=screen.orientation.type,!e)return[3,3];if(a=c.videoWidth,l=c.videoHeight,p=(u=document.documentElement).clientWidth,f=u.clientHeight,!(a>l&&pf))return[3,2];return d=n.startsWith("portrait")?"landscape":"portrait",[4,screen.orientation.lock(d)];case 1:s.sent(),(0,i.addClass)(o,"art-auto-orientation-fullscreen"),s.label=2;case 2:return[3,5];case 3:if(!(0,i.hasClass)(o,"art-auto-orientation-fullscreen"))return[3,5];return[4,screen.orientation.lock(n)];case 4:s.sent(),(0,i.removeClass)(o,"art-auto-orientation-fullscreen"),s.label=5;case 5:return[2]}})}),function(e){return t.apply(this,arguments)})),{name:"autoOrientation",get state(){return(0,i.hasClass)(o,"art-auto-orientation")}}}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a1MWA:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.i18n,r=e.icons,n=e.storage,o=e.constructor,s=e.proxy,i=e.template.$poster,c=e.layers.add({name:"auto-playback",html:'\n
\n
\n
\n '}),l=(0,a.query)(".art-auto-playback-last",c),u=(0,a.query)(".art-auto-playback-jump",c),p=(0,a.query)(".art-auto-playback-close",c);(0,a.append)(p,r.close);var f=null;function d(){var r=(n.get("times")||{})[e.option.id||e.option.url];clearTimeout(f),(0,a.setStyle)(c,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,a.setStyle)(c,"display","flex"),l.innerText="".concat(t.get("Last Seen")," ").concat((0,a.secondToTime)(r)),u.innerText=t.get("Jump Play"),s(p,"click",function(){(0,a.setStyle)(c,"display","none")}),s(u,"click",function(){e.seek=r,e.play(),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(c,"display","none")}),e.once("video:timeupdate",function(){f=setTimeout(function(){(0,a.setStyle)(c,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",function(){if(e.playing){var t=n.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,n.set("times",t)}}),e.on("ready",d),e.on("restart",d),{name:"auto-playback",get times(){return n.get("times")||{}},clear:function(){return n.del("times")},delete:function(e){var t=n.get("times")||{};return delete t[e],n.set("times",t),t}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],c7yFC:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.proxy,n=e.template,o=n.$player,s=n.$video,i=null,c=!1,l=1,u=function(){clearTimeout(i),c&&(c=!1,e.playbackRate=l,(0,a.removeClass)(o,"art-fast-forward"))};return r(s,"touchstart",function(r){1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout(function(){c=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,a.addClass)(o,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",u),r(document,"touchend",u),{name:"fastForward",get state(){return(0,a.hasClass)(o,"art-fast-forward")}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lewgR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.layers,r=e.icons,n=e.template.$player;function o(){return(0,a.hasClass)(n,"art-lock")}function s(){(0,a.addClass)(n,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function i(){(0,a.removeClass)(n,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted:function(t){var n=(0,a.append)(t,r.lock),o=(0,a.append)(t,r.unlock);(0,a.setStyle)(n,"display","none"),e.on("lock",function(e){e?((0,a.setStyle)(n,"display","inline-flex"),(0,a.setStyle)(o,"display","none")):((0,a.setStyle)(n,"display","none"),(0,a.setStyle)(o,"display","inline-flex"))})},click:function(){o()?i():s()}}),{name:"lock",get state(){return o()},set state(value){value?s():i()}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}]},["bzF6W"],"bzF6W","parcelRequireb749",{}); \ No newline at end of file diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js index 6a8f453f2..952ff5d1b 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js @@ -1,6 +1,6 @@ /*! - * artplayer-plugin-danmuku.js v5.1.7 + * artplayer-plugin-danmuku.js v5.1.8 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js index 04e9e5b44..a6db8f97e 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js @@ -1,6 +1,6 @@ /*! - * artplayer-plugin-danmuku.js v5.1.7 + * artplayer-plugin-danmuku.js v5.1.8 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. diff --git a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js index 596a043d6..7319f207e 100644 --- a/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js +++ b/packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js @@ -1,6 +1,6 @@ /*! - * artplayer-plugin-danmuku.js v5.1.7 + * artplayer-plugin-danmuku.js v5.1.8 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. diff --git a/packages/artplayer-plugin-danmuku/package.json b/packages/artplayer-plugin-danmuku/package.json index 6c3f718cd..a56662861 100644 --- a/packages/artplayer-plugin-danmuku/package.json +++ b/packages/artplayer-plugin-danmuku/package.json @@ -1,17 +1,11 @@ { "license": "MIT", - "version": "5.1.7", + "version": "5.1.8", "name": "artplayer-plugin-danmuku", + "types": "types/artplayer-plugin-danmuku.d.ts", "description": "Danmuku plugin for ArtPlayer", "main": "dist/artplayer-plugin-danmuku.js", "legacy": "dist/artplayer-plugin-danmuku.legacy.js", - "module": "dist/artplayer-plugin-danmuku.esm.js", - "types": "types/artplayer-plugin-danmuku.d.ts", - "exports": { - "import": "./dist/artplayer-plugin-danmuku.esm.js", - "require": "./dist/artplayer-plugin-danmuku.js", - "default": "./dist/artplayer-plugin-danmuku.js" - }, "author": "Harvey Zack ", "browserslist": "last 1 Chrome version", "homepage": "https://artplayer.org", diff --git a/packages/artplayer/dist/artplayer.esm.js b/packages/artplayer/dist/artplayer.esm.js index 23aeafc2b..077bf4324 100644 --- a/packages/artplayer/dist/artplayer.esm.js +++ b/packages/artplayer/dist/artplayer.esm.js @@ -1,9 +1,9 @@ /*! - * artplayer.js v5.2.4 + * artplayer.js v5.2.5 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}Z.push(this)}static get instances(){return Z}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),Z.splice(Z.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"3QATz","bundle-text:./style/index.less":"7b65e","option-validator":"glVMO","./utils/emitter":"evjIj","./utils":"2zmtQ","./scheme":"lGoF1","./config":"auZaO","./template":"1uh6E","./i18n":"3udCS","./player":"9mB1U","./control":"3aoXC","./contextmenu":"5YYHx","./info":"j6kB4","./subtitle":"ldqPL","./events":"5jGH8","./hotkey":"8a1Mr","./layer":"3WCuK","./loading":"inwRV","./notice":"iAojr","./mask":"4ZuYu","./icons":"aEpTt","./setting":"9Bz5C","./storage":"ly2Yz","./plugins":"enDIw","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3QATz":[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.4","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","module":"dist/artplayer.esm.js","types":"types/artplayer.d.ts","exports":{"import":"./dist/artplayer.esm.js","require":"./dist/artplayer.js","default":"./dist/artplayer.js"},"homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"7b65e":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],glVMO:[function(e,t,r,a){t.exports=function(){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>T),o.export(r,"getRect",()=>$),o.export(r,"loadImg",()=>I);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function T(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function $(e){return e.getBoundingClientRect()}function I(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"lHM5L","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lHM5L:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],anKPB:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],NXvdl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9RWGQ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],bfNe9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],afTRg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1I37O":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lGoF1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],auZaO:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1uh6E":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"3QATz","./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3udCS":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"2zmtQ","./zh-cn":"3CYMl","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3CYMl":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9mB1U":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),$=o.interopDefault(T),I=e("./aspectRatioMix"),M=o.interopDefault(I),L=e("./screenshotMix"),E=o.interopDefault(L),z=e("./fullscreenMix"),C=o.interopDefault(z),F=e("./fullscreenWebMix"),D=o.interopDefault(F),A=e("./pipMix"),R=o.interopDefault(A),O=e("./loadedMix"),P=o.interopDefault(O),_=e("./playedMix"),H=o.interopDefault(_),V=e("./playingMix"),N=o.interopDefault(V),q=e("./autoSizeMix"),B=o.interopDefault(q),Q=e("./rectMix"),W=o.interopDefault(Q),U=e("./flipMix"),Y=o.interopDefault(U),G=e("./miniMix"),K=o.interopDefault(G),X=e("./posterMix"),Z=o.interopDefault(X),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,$.default)(e),(0,M.default)(e),(0,E.default)(e),(0,C.default)(e),(0,D.default)(e),(0,R.default)(e),(0,P.default)(e),(0,H.default)(e),(0,N.default)(e),(0,B.default)(e),(0,W.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,Z.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"gOtyE","./attrMix":"53BhY","./playMix":"1banF","./pauseMix":"3wC1g","./toggleMix":"27lNh","./seekMix":"h3e53","./volumeMix":"7ZLkO","./currentTimeMix":"e6oTn","./durationMix":"asbQ7","./switchMix":"5l7tM","./playbackRateMix":"dHiZV","./aspectRatioMix":"7TM4D","./screenshotMix":"9LouN","./fullscreenMix":"dYSsN","./fullscreenWebMix":"fF9Os","./pipMix":"hDMWY","./loadedMix":"7RkX2","./playedMix":"jXVGX","./playingMix":"5vvMN","./autoSizeMix":"eukuj","./rectMix":"dSo4g","./flipMix":"dJ7GF","./miniMix":"kZI2p","./posterMix":"fIZNk","./autoHeightMix":"24b5p","./cssVarMix":"gK6U1","./themeMix":"aIG6s","./typeMix":"i5sGy","./stateMix":"juKiS","./subtitleOffsetMix":"arSae","./airplayMix":"kIugI","./qualityMix":"lDgAt","./thumbnailsMix":"5Mloy","./optionInit":"a5DcW","./eventInit":"jpd3q","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gOtyE:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"53BhY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1banF":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"27lNh":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],h3e53:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7ZLkO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],e6oTn:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],asbQ7:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5l7tM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dHiZV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7TM4D":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9LouN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dYSsN:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"9CUfT","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9CUfT":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fF9Os:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hDMWY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7RkX2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jXVGX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5vvMN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eukuj:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dSo4g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dJ7GF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kZI2p:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fIZNk:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"24b5p":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gK6U1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aIG6s:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],i5sGy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],juKiS:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lDgAt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5Mloy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],a5DcW:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jpd3q:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"auZaO","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3aoXC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),T=e("./airplay"),$=o.interopDefault(T),I=e("../utils");class M extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{I.isMobile||(this.show=!0)}),e.on("click",()=>{I.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,I.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,I.removeClass)(r,"art-hide-cursor"),(0,I.addClass)(r,"art-hover"),this.timer=Date.now()):((0,I.addClass)(r,"art-hide-cursor"),(0,I.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,I.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!I.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,$.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,I.def)(r,"$control_item",{get:()=>a}),(0,I.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=M},{"../utils/component":"euCTd","./fullscreen":"9LKex","./fullscreenWeb":"htT34","./pip":"7zSba","./playAndPause":"kGz8j","./progress":"7zX2b","./time":"eUF3T","./volume":"5Jp6A","./setting":"aPd5g","./screenshot":"cEkSl","./airplay":"iUshw","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],euCTd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],htT34:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zSba":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kGz8j:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zX2b":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eUF3T:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aPd5g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cEkSl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iUshw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5YYHx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"2zmtQ","../utils/component":"euCTd","./playbackRate":"lWYo9","./aspectRatio":"5d6ZO","./flip":"1GWlZ","./info":"c5pls","./version":"lD1aU","./close":"4jD3d","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lWYo9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5d6ZO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1GWlZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],c5pls:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lD1aU:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"3QATz","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4jD3d":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],j6kB4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"2zmtQ","./utils/component":"euCTd","option-validator":"glVMO","./scheme":"lGoF1","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5jGH8":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],egLHg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iGcl4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1DNHs":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],efKpC:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"2zmtQ","../control/progress":"7zX2b","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fNuBy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kHtUy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8cq8y":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3XeLA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8a1Mr":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4ZuYu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"2zmtQ","./utils/component":"euCTd","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aEpTt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),T=o.interopDefault(S),$=e("bundle-text:./arrow-right.svg"),I=o.interopDefault($),M=e("bundle-text:./playback-rate.svg"),L=o.interopDefault(M),E=e("bundle-text:./aspect-ratio.svg"),z=o.interopDefault(E),C=e("bundle-text:./config.svg"),F=o.interopDefault(C),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),O=o.interopDefault(R),P=e("bundle-text:./unlock.svg"),_=o.interopDefault(P),H=e("bundle-text:./fullscreen-off.svg"),V=o.interopDefault(H),N=e("bundle-text:./fullscreen-on.svg"),q=o.interopDefault(N),B=e("bundle-text:./fullscreen-web-off.svg"),Q=o.interopDefault(B),W=e("bundle-text:./fullscreen-web-on.svg"),U=o.interopDefault(W),Y=e("bundle-text:./switch-on.svg"),G=o.interopDefault(Y),K=e("bundle-text:./switch-off.svg"),X=o.interopDefault(K),Z=e("bundle-text:./flip.svg"),J=o.interopDefault(Z),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:T.default,arrowRight:I.default,playbackRate:L.default,aspectRatio:z.default,config:F.default,lock:O.default,flip:J.default,unlock:_.default,fullscreenOff:V.default,fullscreenOn:q.default,fullscreenWebOff:Q.default,fullscreenWebOn:U.default,switchOn:G.default,switchOff:X.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"2zmtQ","bundle-text:./loading.svg":"hvcIK","bundle-text:./state.svg":"lvrOo","bundle-text:./check.svg":"dEWuy","bundle-text:./play.svg":"bIRRL","bundle-text:./pause.svg":"8qmIt","bundle-text:./volume.svg":"d1KXb","bundle-text:./volume-close.svg":"6M8TS","bundle-text:./screenshot.svg":"1GD8Z","bundle-text:./setting.svg":"jmLr7","bundle-text:./arrow-left.svg":"8ACXK","bundle-text:./arrow-right.svg":"eUczZ","bundle-text:./playback-rate.svg":"cYmA3","bundle-text:./aspect-ratio.svg":"8l32s","bundle-text:./config.svg":"8Erz8","bundle-text:./pip.svg":"gx5TO","bundle-text:./lock.svg":"7IJRz","bundle-text:./unlock.svg":"dBJfA","bundle-text:./fullscreen-off.svg":"84gJT","bundle-text:./fullscreen-on.svg":"eGYQU","bundle-text:./fullscreen-web-off.svg":"aGs9s","bundle-text:./fullscreen-web-on.svg":"1r85n","bundle-text:./switch-on.svg":"fNd7D","bundle-text:./switch-off.svg":"eCzDs","bundle-text:./flip.svg":"84k5P","bundle-text:./error.svg":"lMJEW","bundle-text:./close.svg":"4Kq91","bundle-text:./airplay.svg":"a7OND","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hvcIK:[function(e,t,r,a){t.exports=''},{}],lvrOo:[function(e,t,r,a){t.exports=''},{}],dEWuy:[function(e,t,r,a){t.exports=''},{}],bIRRL:[function(e,t,r,a){t.exports=''},{}],"8qmIt":[function(e,t,r,a){t.exports=''},{}],d1KXb:[function(e,t,r,a){t.exports=''},{}],"6M8TS":[function(e,t,r,a){t.exports=''},{}],"1GD8Z":[function(e,t,r,a){t.exports=''},{}],jmLr7:[function(e,t,r,a){t.exports=''},{}],"8ACXK":[function(e,t,r,a){t.exports=''},{}],eUczZ:[function(e,t,r,a){t.exports=''},{}],cYmA3:[function(e,t,r,a){t.exports=''},{}],"8l32s":[function(e,t,r,a){t.exports=''},{}],"8Erz8":[function(e,t,r,a){t.exports=''},{}],gx5TO:[function(e,t,r,a){t.exports=''},{}],"7IJRz":[function(e,t,r,a){t.exports=''},{}],dBJfA:[function(e,t,r,a){t.exports=''},{}],"84gJT":[function(e,t,r,a){t.exports=''},{}],eGYQU:[function(e,t,r,a){t.exports=''},{}],aGs9s:[function(e,t,r,a){t.exports=''},{}],"1r85n":[function(e,t,r,a){t.exports=''},{}],fNd7D:[function(e,t,r,a){t.exports=''},{}],eCzDs:[function(e,t,r,a){t.exports=''},{}],"84k5P":[function(e,t,r,a){t.exports=''},{}],lMJEW:[function(e,t,r,a){t.exports=''},{}],"4Kq91":[function(e,t,r,a){t.exports=''},{}],a7OND:[function(e,t,r,a){t.exports=''},{}],"9Bz5C":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],g0rEm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],p1PC0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3ybiM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],ly2Yz:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],enDIw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"2zmtQ","./miniProgressBar":"dtvsV","./autoOrientation":"aMOBX","./autoPlayback":"kqk6e","./fastForward":"Rwbar","./lock":"cmd59","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dtvsV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aMOBX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kqk6e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],Rwbar:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cmd59:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}]},["4omrA"],"4omrA","parcelRequireb749",{});let{default:e}=parcelRequireb749("4omrA");export{e as default}; +!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}Z.push(this)}static get instances(){return Z}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),Z.splice(Z.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"3QATz","bundle-text:./style/index.less":"7b65e","option-validator":"glVMO","./utils/emitter":"evjIj","./utils":"2zmtQ","./scheme":"lGoF1","./config":"auZaO","./template":"1uh6E","./i18n":"3udCS","./player":"9mB1U","./control":"3aoXC","./contextmenu":"5YYHx","./info":"j6kB4","./subtitle":"ldqPL","./events":"5jGH8","./hotkey":"8a1Mr","./layer":"3WCuK","./loading":"inwRV","./notice":"iAojr","./mask":"4ZuYu","./icons":"aEpTt","./setting":"9Bz5C","./storage":"ly2Yz","./plugins":"enDIw","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3QATz":[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.5","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","types":"types/artplayer.d.ts","homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"7b65e":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],glVMO:[function(e,t,r,a){t.exports=function(){function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>T),o.export(r,"getRect",()=>$),o.export(r,"loadImg",()=>I);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function T(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function $(e){return e.getBoundingClientRect()}function I(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"lHM5L","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lHM5L:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],anKPB:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],NXvdl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9RWGQ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],bfNe9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],afTRg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1I37O":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lGoF1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],auZaO:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1uh6E":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"3QATz","./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3udCS":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"2zmtQ","./zh-cn":"3CYMl","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3CYMl":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9mB1U":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),$=o.interopDefault(T),I=e("./aspectRatioMix"),M=o.interopDefault(I),L=e("./screenshotMix"),E=o.interopDefault(L),z=e("./fullscreenMix"),C=o.interopDefault(z),F=e("./fullscreenWebMix"),D=o.interopDefault(F),A=e("./pipMix"),R=o.interopDefault(A),O=e("./loadedMix"),P=o.interopDefault(O),_=e("./playedMix"),H=o.interopDefault(_),V=e("./playingMix"),N=o.interopDefault(V),q=e("./autoSizeMix"),B=o.interopDefault(q),Q=e("./rectMix"),W=o.interopDefault(Q),U=e("./flipMix"),Y=o.interopDefault(U),G=e("./miniMix"),K=o.interopDefault(G),X=e("./posterMix"),Z=o.interopDefault(X),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,$.default)(e),(0,M.default)(e),(0,E.default)(e),(0,C.default)(e),(0,D.default)(e),(0,R.default)(e),(0,P.default)(e),(0,H.default)(e),(0,N.default)(e),(0,B.default)(e),(0,W.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,Z.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"gOtyE","./attrMix":"53BhY","./playMix":"1banF","./pauseMix":"3wC1g","./toggleMix":"27lNh","./seekMix":"h3e53","./volumeMix":"7ZLkO","./currentTimeMix":"e6oTn","./durationMix":"asbQ7","./switchMix":"5l7tM","./playbackRateMix":"dHiZV","./aspectRatioMix":"7TM4D","./screenshotMix":"9LouN","./fullscreenMix":"dYSsN","./fullscreenWebMix":"fF9Os","./pipMix":"hDMWY","./loadedMix":"7RkX2","./playedMix":"jXVGX","./playingMix":"5vvMN","./autoSizeMix":"eukuj","./rectMix":"dSo4g","./flipMix":"dJ7GF","./miniMix":"kZI2p","./posterMix":"fIZNk","./autoHeightMix":"24b5p","./cssVarMix":"gK6U1","./themeMix":"aIG6s","./typeMix":"i5sGy","./stateMix":"juKiS","./subtitleOffsetMix":"arSae","./airplayMix":"kIugI","./qualityMix":"lDgAt","./thumbnailsMix":"5Mloy","./optionInit":"a5DcW","./eventInit":"jpd3q","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gOtyE:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"53BhY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1banF":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"27lNh":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],h3e53:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7ZLkO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],e6oTn:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],asbQ7:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5l7tM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dHiZV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7TM4D":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9LouN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dYSsN:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"9CUfT","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"9CUfT":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fF9Os:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hDMWY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7RkX2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jXVGX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5vvMN":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eukuj:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dSo4g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dJ7GF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kZI2p:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fIZNk:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"24b5p":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],gK6U1:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aIG6s:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],i5sGy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],juKiS:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lDgAt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5Mloy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],a5DcW:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],jpd3q:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"auZaO","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3aoXC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),T=e("./airplay"),$=o.interopDefault(T),I=e("../utils");class M extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{I.isMobile||(this.show=!0)}),e.on("click",()=>{I.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,I.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,I.removeClass)(r,"art-hide-cursor"),(0,I.addClass)(r,"art-hover"),this.timer=Date.now()):((0,I.addClass)(r,"art-hide-cursor"),(0,I.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,I.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!I.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,$.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,I.def)(r,"$control_item",{get:()=>a}),(0,I.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=M},{"../utils/component":"euCTd","./fullscreen":"9LKex","./fullscreenWeb":"htT34","./pip":"7zSba","./playAndPause":"kGz8j","./progress":"7zX2b","./time":"eUF3T","./volume":"5Jp6A","./setting":"aPd5g","./screenshot":"cEkSl","./airplay":"iUshw","../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],euCTd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],htT34:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zSba":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kGz8j:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"7zX2b":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],eUF3T:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aPd5g:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cEkSl:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iUshw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5YYHx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"2zmtQ","../utils/component":"euCTd","./playbackRate":"lWYo9","./aspectRatio":"5d6ZO","./flip":"1GWlZ","./info":"c5pls","./version":"lD1aU","./close":"4jD3d","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lWYo9:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5d6ZO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1GWlZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],c5pls:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],lD1aU:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"3QATz","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4jD3d":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],j6kB4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"2zmtQ","./utils/component":"euCTd","option-validator":"glVMO","./scheme":"lGoF1","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"5jGH8":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],egLHg:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],iGcl4:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"1DNHs":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],efKpC:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"2zmtQ","../control/progress":"7zX2b","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],fNuBy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kHtUy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8cq8y":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3XeLA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"8a1Mr":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"4ZuYu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"2zmtQ","./utils/component":"euCTd","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aEpTt:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),T=o.interopDefault(S),$=e("bundle-text:./arrow-right.svg"),I=o.interopDefault($),M=e("bundle-text:./playback-rate.svg"),L=o.interopDefault(M),E=e("bundle-text:./aspect-ratio.svg"),z=o.interopDefault(E),C=e("bundle-text:./config.svg"),F=o.interopDefault(C),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),O=o.interopDefault(R),P=e("bundle-text:./unlock.svg"),_=o.interopDefault(P),H=e("bundle-text:./fullscreen-off.svg"),V=o.interopDefault(H),N=e("bundle-text:./fullscreen-on.svg"),q=o.interopDefault(N),B=e("bundle-text:./fullscreen-web-off.svg"),Q=o.interopDefault(B),W=e("bundle-text:./fullscreen-web-on.svg"),U=o.interopDefault(W),Y=e("bundle-text:./switch-on.svg"),G=o.interopDefault(Y),K=e("bundle-text:./switch-off.svg"),X=o.interopDefault(K),Z=e("bundle-text:./flip.svg"),J=o.interopDefault(Z),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:T.default,arrowRight:I.default,playbackRate:L.default,aspectRatio:z.default,config:F.default,lock:O.default,flip:J.default,unlock:_.default,fullscreenOff:V.default,fullscreenOn:q.default,fullscreenWebOff:Q.default,fullscreenWebOn:U.default,switchOn:G.default,switchOff:X.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"2zmtQ","bundle-text:./loading.svg":"hvcIK","bundle-text:./state.svg":"lvrOo","bundle-text:./check.svg":"dEWuy","bundle-text:./play.svg":"bIRRL","bundle-text:./pause.svg":"8qmIt","bundle-text:./volume.svg":"d1KXb","bundle-text:./volume-close.svg":"6M8TS","bundle-text:./screenshot.svg":"1GD8Z","bundle-text:./setting.svg":"jmLr7","bundle-text:./arrow-left.svg":"8ACXK","bundle-text:./arrow-right.svg":"eUczZ","bundle-text:./playback-rate.svg":"cYmA3","bundle-text:./aspect-ratio.svg":"8l32s","bundle-text:./config.svg":"8Erz8","bundle-text:./pip.svg":"gx5TO","bundle-text:./lock.svg":"7IJRz","bundle-text:./unlock.svg":"dBJfA","bundle-text:./fullscreen-off.svg":"84gJT","bundle-text:./fullscreen-on.svg":"eGYQU","bundle-text:./fullscreen-web-off.svg":"aGs9s","bundle-text:./fullscreen-web-on.svg":"1r85n","bundle-text:./switch-on.svg":"fNd7D","bundle-text:./switch-off.svg":"eCzDs","bundle-text:./flip.svg":"84k5P","bundle-text:./error.svg":"lMJEW","bundle-text:./close.svg":"4Kq91","bundle-text:./airplay.svg":"a7OND","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],hvcIK:[function(e,t,r,a){t.exports=''},{}],lvrOo:[function(e,t,r,a){t.exports=''},{}],dEWuy:[function(e,t,r,a){t.exports=''},{}],bIRRL:[function(e,t,r,a){t.exports=''},{}],"8qmIt":[function(e,t,r,a){t.exports=''},{}],d1KXb:[function(e,t,r,a){t.exports=''},{}],"6M8TS":[function(e,t,r,a){t.exports=''},{}],"1GD8Z":[function(e,t,r,a){t.exports=''},{}],jmLr7:[function(e,t,r,a){t.exports=''},{}],"8ACXK":[function(e,t,r,a){t.exports=''},{}],eUczZ:[function(e,t,r,a){t.exports=''},{}],cYmA3:[function(e,t,r,a){t.exports=''},{}],"8l32s":[function(e,t,r,a){t.exports=''},{}],"8Erz8":[function(e,t,r,a){t.exports=''},{}],gx5TO:[function(e,t,r,a){t.exports=''},{}],"7IJRz":[function(e,t,r,a){t.exports=''},{}],dBJfA:[function(e,t,r,a){t.exports=''},{}],"84gJT":[function(e,t,r,a){t.exports=''},{}],eGYQU:[function(e,t,r,a){t.exports=''},{}],aGs9s:[function(e,t,r,a){t.exports=''},{}],"1r85n":[function(e,t,r,a){t.exports=''},{}],fNd7D:[function(e,t,r,a){t.exports=''},{}],eCzDs:[function(e,t,r,a){t.exports=''},{}],"84k5P":[function(e,t,r,a){t.exports=''},{}],lMJEW:[function(e,t,r,a){t.exports=''},{}],"4Kq91":[function(e,t,r,a){t.exports=''},{}],a7OND:[function(e,t,r,a){t.exports=''},{}],"9Bz5C":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],g0rEm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],p1PC0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],"3ybiM":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],ly2Yz:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],enDIw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"2zmtQ","./miniProgressBar":"dtvsV","./autoOrientation":"aMOBX","./autoPlayback":"kqk6e","./fastForward":"Rwbar","./lock":"cmd59","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],dtvsV:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],aMOBX:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],kqk6e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],Rwbar:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}],cmd59:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"2zmtQ","@parcel/transformer-js/src/esmodule-helpers.js":"w4pLy"}]},["4omrA"],"4omrA","parcelRequireb749",{});let{default:e}=parcelRequireb749("4omrA");export{e as default}; //# sourceMappingURL=artplayer.esm.js.map \ No newline at end of file diff --git a/packages/artplayer/dist/artplayer.esm.js.map b/packages/artplayer/dist/artplayer.esm.js.map index cc48ef0fa..999721daf 100644 --- a/packages/artplayer/dist/artplayer.esm.js.map +++ b/packages/artplayer/dist/artplayer.esm.js.map @@ -1 +1 @@ -{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAA,IAAA,EAAA,EAAA,mBACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,WACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,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AAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAC5C,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAElD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAE5B,EAAI,EAAE,CAAC,UAAW,KACd,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,KAChC,GAEA,EAAO,KAAK,CAAC,EAAS,MAAM,CAAE,QAAS,IAAM,EAAI,IAAI,GACzD,CACJ,CAnBqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCHrB,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,iC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,oC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,wC,E,E,c,C,GACA,EAAA,EAAA,uC,E,E,c,C,GACA,EAAA,EAAA,+B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,6B,G,E,c,C,GAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAM,EAAQ,CACV,QAAA,EAAA,OAAM,CACN,MAAA,EAAA,OAAI,CACJ,KAAA,EAAA,OAAG,CACH,MAAA,EAAA,OAAI,CACJ,MAAA,EAAA,OAAI,CACJ,OAAA,EAAA,OAAK,CACL,YAAA,EAAA,OAAU,CACV,WAAA,EAAA,OAAS,CACT,QAAA,EAAA,OAAM,CACN,IAAA,EAAA,OAAE,CACF,UAAA,EAAA,OAAQ,CACR,WAAA,EAAA,OAAS,CACT,aAAA,EAAA,OAAW,CACX,YAAA,EAAA,OAAU,CACV,OAAA,EAAA,OAAK,CACL,KAAA,EAAA,OAAG,CACH,KAAA,EAAA,OAAG,CACH,OAAA,EAAA,OAAK,CACL,cAAA,EAAA,OAAY,CACZ,aAAA,EAAA,OAAW,CACX,iBAAA,EAAA,OAAe,CACf,gBAAA,EAAA,OAAc,CACd,SAAA,EAAA,OAAO,CACP,UAAA,EAAA,OAAQ,CACR,MAAA,GAAA,OAAI,CACJ,MAAA,GAAA,OAAI,CACJ,QAAA,GAAA,OAAM,CACN,GAAG,EAAI,MAAM,CAAC,KAAK,AACvB,EAEA,IAAK,IAAM,KAAO,EACd,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,IAAI,CAAE,EAAK,CACX,IAAK,IAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,CAAK,CAAC,EAAI,CACtC,EAER,CACJ,C,E,C,W,Q,4B,Q,0B,Q,0B,Q,yB,Q,0B,Q,2B,Q,iC,Q,+B,Q,4B,Q,+B,Q,gC,Q,kC,Q,iC,Q,2B,Q,wB,Q,yB,Q,2B,Q,mC,Q,kC,Q,uC,Q,sC,Q,8B,Q,+B,Q,yB,Q,0B,Q,0B,Q,4B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,ECpEA,EAAO,OAAO,CAAG,utF,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,ic,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sK,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,6M,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yL,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kX,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qlB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,wX,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kuB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qa,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,22B,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,2M,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+N,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Z,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Y,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mS,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,4S,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mnB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,onB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kP,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sZ,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,muB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,okB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gjB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yN,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAjB,IAAA,EAAA,EAAA,U,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","sources":["","src/index.js","package.json","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e5b18d0e844e5afa.js","../../node_modules/option-validator/dist/option-validator.js","src/utils/emitter.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/utils/index.js","src/utils/dom.js","src/utils/compatibility.js","src/utils/error.js","src/utils/subtitle.js","src/utils/file.js","src/utils/property.js","src/utils/time.js","src/utils/format.js","src/scheme/index.js","src/config/index.js","src/template.js","src/i18n/index.js","src/i18n/zh-cn.js","src/player/index.js","src/player/urlMix.js","src/player/attrMix.js","src/player/playMix.js","src/player/pauseMix.js","src/player/toggleMix.js","src/player/seekMix.js","src/player/volumeMix.js","src/player/currentTimeMix.js","src/player/durationMix.js","src/player/switchMix.js","src/player/playbackRateMix.js","src/player/aspectRatioMix.js","src/player/screenshotMix.js","src/player/fullscreenMix.js","src/libs/screenfull.js","src/player/fullscreenWebMix.js","src/player/pipMix.js","src/player/loadedMix.js","src/player/playedMix.js","src/player/playingMix.js","src/player/autoSizeMix.js","src/player/rectMix.js","src/player/flipMix.js","src/player/miniMix.js","src/player/posterMix.js","src/player/autoHeightMix.js","src/player/cssVarMix.js","src/player/themeMix.js","src/player/typeMix.js","src/player/stateMix.js","src/player/subtitleOffsetMix.js","src/player/airplayMix.js","src/player/qualityMix.js","src/player/thumbnailsMix.js","src/player/optionInit.js","src/player/eventInit.js","src/control/index.js","src/utils/component.js","src/control/fullscreen.js","src/control/fullscreenWeb.js","src/control/pip.js","src/control/playAndPause.js","src/control/progress.js","src/control/time.js","src/control/volume.js","src/control/setting.js","src/control/screenshot.js","src/control/airplay.js","src/contextmenu/index.js","src/contextmenu/playbackRate.js","src/contextmenu/aspectRatio.js","src/contextmenu/flip.js","src/contextmenu/info.js","src/contextmenu/version.js","src/contextmenu/close.js","src/info.js","src/subtitle.js","src/events/index.js","src/events/clickInit.js","src/events/hoverInit.js","src/events/moveInit.js","src/events/resizeInit.js","src/events/gestureInit.js","src/events/viewInit.js","src/events/documentInit.js","src/events/updateInit.js","src/events/restoreInit.js","src/hotkey.js","src/layer.js","src/loading.js","src/notice.js","src/mask.js","src/icons/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-f46ce6fd4d6219c9.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e2699ab1b5d12dec.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-fb4f406243bae249.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e7f49ef0a750e46e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-355a67f597addcce.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b511c19de45d7b5a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a8c37daa693ed128.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6e583e791161db23.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5d29c1646a3f2a46.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-378fbb72a82e8e48.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e8cd5a1ef68bb59f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-ffbc0f66c3a6fc5c.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5686118494f842bb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-9f0950781f43006b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d259a056e372040b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-04028cd054423deb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-eafe778ff83fb2ea.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a4473dfbbe0190b0.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-73212e2644fd43cb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6f4de877081a61c3.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-886a1de38693838a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-dc18eeb39fcd983d.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-059301d9482d34d2.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d9590f5b369d2f07.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-7a1cdac95b207001.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e53925a959c8f5c7.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b336b1c2248901.js","src/setting/index.js","src/setting/flip.js","src/setting/aspectRatio.js","src/setting/playbackRate.js","src/setting/subtitleOffset.js","src/storage.js","src/plugins/index.js","src/plugins/miniProgressBar.js","src/plugins/autoOrientation.js","src/plugins/autoPlayback.js","src/plugins/fastForward.js","src/plugins/lock.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"4omrA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _indexLess = require(\"bundle-text:./style/index.less\");\nvar _indexLessDefault = parcelHelpers.interopDefault(_indexLess);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _emitter = require(\"./utils/emitter\");\nvar _emitterDefault = parcelHelpers.interopDefault(_emitter);\nvar _utils = require(\"./utils\");\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nvar _config = require(\"./config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _template = require(\"./template\");\nvar _templateDefault = parcelHelpers.interopDefault(_template);\nvar _i18N = require(\"./i18n\");\nvar _i18NDefault = parcelHelpers.interopDefault(_i18N);\nvar _player = require(\"./player\");\nvar _playerDefault = parcelHelpers.interopDefault(_player);\nvar _control = require(\"./control\");\nvar _controlDefault = parcelHelpers.interopDefault(_control);\nvar _contextmenu = require(\"./contextmenu\");\nvar _contextmenuDefault = parcelHelpers.interopDefault(_contextmenu);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _subtitle = require(\"./subtitle\");\nvar _subtitleDefault = parcelHelpers.interopDefault(_subtitle);\nvar _events = require(\"./events\");\nvar _eventsDefault = parcelHelpers.interopDefault(_events);\nvar _hotkey = require(\"./hotkey\");\nvar _hotkeyDefault = parcelHelpers.interopDefault(_hotkey);\nvar _layer = require(\"./layer\");\nvar _layerDefault = parcelHelpers.interopDefault(_layer);\nvar _loading = require(\"./loading\");\nvar _loadingDefault = parcelHelpers.interopDefault(_loading);\nvar _notice = require(\"./notice\");\nvar _noticeDefault = parcelHelpers.interopDefault(_notice);\nvar _mask = require(\"./mask\");\nvar _maskDefault = parcelHelpers.interopDefault(_mask);\nvar _icons = require(\"./icons\");\nvar _iconsDefault = parcelHelpers.interopDefault(_icons);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _storage = require(\"./storage\");\nvar _storageDefault = parcelHelpers.interopDefault(_storage);\nvar _plugins = require(\"./plugins\");\nvar _pluginsDefault = parcelHelpers.interopDefault(_plugins);\nlet id = 0;\nconst instances = [];\nclass Artplayer extends (0, _emitterDefault.default) {\n constructor(option, readyCallback){\n super();\n this.id = ++id;\n const mergeOption = _utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n this.option = (0, _optionValidatorDefault.default)(mergeOption, (0, _schemeDefault.default));\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 this.template = new (0, _templateDefault.default)(this);\n this.events = new (0, _eventsDefault.default)(this);\n this.storage = new (0, _storageDefault.default)(this);\n this.icons = new (0, _iconsDefault.default)(this);\n this.i18n = new (0, _i18NDefault.default)(this);\n this.notice = new (0, _noticeDefault.default)(this);\n this.player = new (0, _playerDefault.default)(this);\n this.layers = new (0, _layerDefault.default)(this);\n this.controls = new (0, _controlDefault.default)(this);\n this.contextmenu = new (0, _contextmenuDefault.default)(this);\n this.subtitle = new (0, _subtitleDefault.default)(this);\n this.info = new (0, _infoDefault.default)(this);\n this.loading = new (0, _loadingDefault.default)(this);\n this.hotkey = new (0, _hotkeyDefault.default)(this);\n this.mask = new (0, _maskDefault.default)(this);\n this.setting = new (0, _settingDefault.default)(this);\n this.plugins = new (0, _pluginsDefault.default)(this);\n if (typeof readyCallback === 'function') this.on('ready', ()=>readyCallback.call(this, this));\n if (Artplayer.DEBUG) {\n const log = (msg)=>console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)this.on('video:' + (0, _configDefault.default).events[index], (event)=>log('Event@' + event.type));\n }\n instances.push(this);\n }\n static get instances() {\n return instances;\n }\n static get version() {\n return 0, _packageJson.version;\n }\n static get config() {\n return 0, _configDefault.default;\n }\n static get utils() {\n return _utils;\n }\n static get scheme() {\n return 0, _schemeDefault.default;\n }\n static get Emitter() {\n return 0, _emitterDefault.default;\n }\n static get validator() {\n return 0, _optionValidatorDefault.default;\n }\n static get kindOf() {\n return (0, _optionValidatorDefault.default).kindOf;\n }\n static get html() {\n return (0, _templateDefault.default).html;\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 get proxy() {\n return this.events.proxy;\n }\n get query() {\n return this.template.query;\n }\n get video() {\n return this.template.$video;\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}\nexports.default = Artplayer;\nArtplayer.STYLE = (0, _indexLessDefault.default);\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 = [\n 0.5,\n 0.75,\n 1,\n 1.25,\n 1.5,\n 2\n];\nArtplayer.ASPECT_RATIO = [\n 'default',\n '4:3',\n '16:9'\n];\nArtplayer.FLIP = [\n 'normal',\n 'horizontal',\n 'vertical'\n];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\nif (_utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n _utils.setStyleText('artplayer-style', (0, _indexLessDefault.default));\n setTimeout(()=>{\n if (Artplayer.LOG_VERSION) console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', '');\n }, 100);\n}\n\n},{\"../package.json\":\"3QATz\",\"bundle-text:./style/index.less\":\"7b65e\",\"option-validator\":\"glVMO\",\"./utils/emitter\":\"evjIj\",\"./utils\":\"2zmtQ\",\"./scheme\":\"lGoF1\",\"./config\":\"auZaO\",\"./template\":\"1uh6E\",\"./i18n\":\"3udCS\",\"./player\":\"9mB1U\",\"./control\":\"3aoXC\",\"./contextmenu\":\"5YYHx\",\"./info\":\"j6kB4\",\"./subtitle\":\"ldqPL\",\"./events\":\"5jGH8\",\"./hotkey\":\"8a1Mr\",\"./layer\":\"3WCuK\",\"./loading\":\"inwRV\",\"./notice\":\"iAojr\",\"./mask\":\"4ZuYu\",\"./icons\":\"aEpTt\",\"./setting\":\"9Bz5C\",\"./storage\":\"ly2Yz\",\"./plugins\":\"enDIw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3QATz\":[function(require,module,exports,__globalThis) {\nmodule.exports = JSON.parse(\"{\\\"license\\\":\\\"MIT\\\",\\\"name\\\":\\\"artplayer\\\",\\\"version\\\":\\\"5.2.4\\\",\\\"main\\\":\\\"dist/artplayer.js\\\",\\\"legacy\\\":\\\"dist/artplayer.legacy.js\\\",\\\"module\\\":\\\"dist/artplayer.esm.js\\\",\\\"types\\\":\\\"types/artplayer.d.ts\\\",\\\"exports\\\":{\\\"import\\\":\\\"./dist/artplayer.esm.js\\\",\\\"require\\\":\\\"./dist/artplayer.js\\\",\\\"default\\\":\\\"./dist/artplayer.js\\\"},\\\"homepage\\\":\\\"https://artplayer.org\\\",\\\"author\\\":\\\"Harvey Zack \\\",\\\"browserslist\\\":\\\"last 1 Chrome version\\\",\\\"description\\\":\\\"ArtPlayer.js is a modern and full featured HTML5 video player\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/zhw2590582/ArtPlayer.git\\\"},\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/zhw2590582/ArtPlayer/issues\\\"},\\\"keywords\\\":[\\\"html5\\\",\\\"video\\\",\\\"player\\\"],\\\"dependencies\\\":{\\\"option-validator\\\":\\\"^2.0.6\\\"}}\");\n\n},{}],\"7b65e\":[function(require,module,exports,__globalThis) {\nmodule.exports = \".art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:\\\"\\\";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=\\\"\\\"]:before,[aria-label=\\\"\\\"]:after,[data-hint=\\\"\\\"]:before,[data-hint=\\\"\\\"]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}\";\n\n},{}],\"glVMO\":[function(require,module,exports,__globalThis) {\n!function(r, t) {\n module.exports = t();\n}(this, function() {\n \"use strict\";\n function e(r) {\n return (e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(r) {\n return typeof r;\n } : function(r) {\n return r && \"function\" == typeof Symbol && r.constructor === Symbol && r !== Symbol.prototype ? \"symbol\" : typeof r;\n })(r);\n }\n var n = Object.prototype.toString, c = function(r) {\n if (void 0 === r) return \"undefined\";\n if (null === r) return \"null\";\n var t = e(r);\n if (\"boolean\" === t) return \"boolean\";\n if (\"string\" === t) return \"string\";\n if (\"number\" === t) return \"number\";\n if (\"symbol\" === t) return \"symbol\";\n if (\"function\" === t) return function(r) {\n return \"GeneratorFunction\" === o(r);\n }(r) ? \"generatorfunction\" : \"function\";\n if (function(r) {\n return Array.isArray ? Array.isArray(r) : r instanceof Array;\n }(r)) return \"array\";\n if (function(r) {\n if (r.constructor && \"function\" == typeof r.constructor.isBuffer) return r.constructor.isBuffer(r);\n return !1;\n }(r)) return \"buffer\";\n if (function(r) {\n try {\n if (\"number\" == typeof r.length && \"function\" == typeof r.callee) return !0;\n } catch (r) {\n if (-1 !== r.message.indexOf(\"callee\")) return !0;\n }\n return !1;\n }(r)) return \"arguments\";\n if (function(r) {\n return r instanceof Date || \"function\" == typeof r.toDateString && \"function\" == typeof r.getDate && \"function\" == typeof r.setDate;\n }(r)) return \"date\";\n if (function(r) {\n return r instanceof Error || \"string\" == typeof r.message && r.constructor && \"number\" == typeof r.constructor.stackTraceLimit;\n }(r)) return \"error\";\n if (function(r) {\n return r instanceof RegExp || \"string\" == typeof r.flags && \"boolean\" == typeof r.ignoreCase && \"boolean\" == typeof r.multiline && \"boolean\" == typeof r.global;\n }(r)) return \"regexp\";\n switch(o(r)){\n case \"Symbol\":\n return \"symbol\";\n case \"Promise\":\n return \"promise\";\n case \"WeakMap\":\n return \"weakmap\";\n case \"WeakSet\":\n return \"weakset\";\n case \"Map\":\n return \"map\";\n case \"Set\":\n return \"set\";\n case \"Int8Array\":\n return \"int8array\";\n case \"Uint8Array\":\n return \"uint8array\";\n case \"Uint8ClampedArray\":\n return \"uint8clampedarray\";\n case \"Int16Array\":\n return \"int16array\";\n case \"Uint16Array\":\n return \"uint16array\";\n case \"Int32Array\":\n return \"int32array\";\n case \"Uint32Array\":\n return \"uint32array\";\n case \"Float32Array\":\n return \"float32array\";\n case \"Float64Array\":\n return \"float64array\";\n }\n if (function(r) {\n return \"function\" == typeof r.throw && \"function\" == typeof r.return && \"function\" == typeof r.next;\n }(r)) return \"generator\";\n switch(t = n.call(r)){\n case \"[object Object]\":\n return \"object\";\n case \"[object Map Iterator]\":\n return \"mapiterator\";\n case \"[object Set Iterator]\":\n return \"setiterator\";\n case \"[object String Iterator]\":\n return \"stringiterator\";\n case \"[object Array Iterator]\":\n return \"arrayiterator\";\n }\n return t.slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n };\n function o(r) {\n return r.constructor ? r.constructor.name : null;\n }\n function f(r, t) {\n var e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [\n \"option\"\n ];\n return s(r, t, e), y(r, t, e), function(a, i, u) {\n var r = c(i), t = c(a);\n if (\"object\" === r) {\n if (\"object\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'object' type, but got '\").concat(t, \"'\"));\n Object.keys(i).forEach(function(r) {\n var t = a[r], e = i[r], n = u.slice();\n n.push(r), s(t, e, n), y(t, e, n), f(t, e, n);\n });\n }\n if (\"array\" === r) {\n if (\"array\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'array' type, but got '\").concat(t, \"'\"));\n a.forEach(function(r, t) {\n var e = a[t], n = i[t] || i[0], o = u.slice();\n o.push(t), s(e, n, o), y(e, n, o), f(e, n, o);\n });\n }\n }(r, t, e), r;\n }\n function s(r, t, e) {\n if (\"string\" === c(t)) {\n var n = c(r);\n if (\"?\" === t[0] && (t = t.slice(1) + \"|undefined\"), !(-1 < t.indexOf(\"|\") ? t.split(\"|\").map(function(r) {\n return r.toLowerCase().trim();\n }).filter(Boolean).some(function(r) {\n return n === r;\n }) : t.toLowerCase().trim() === n)) throw new Error(\"[Type Error]: '\".concat(e.join(\".\"), \"' require '\").concat(t, \"' type, but got '\").concat(n, \"'\"));\n }\n }\n function y(r, t, e) {\n if (\"function\" === c(t)) {\n var n = t(r, c(r), e);\n if (!0 !== n) {\n var o = c(n);\n throw \"string\" === o ? new Error(n) : \"error\" === o ? n : new Error(\"[Validator Error]: The scheme for '\".concat(e.join(\".\"), \"' validator require return true, but got '\").concat(n, \"'\"));\n }\n }\n }\n return f.kindOf = c, f;\n});\n\n},{}],\"evjIj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn,\n ctx\n });\n return this;\n }\n once(name, fn, ctx) {\n const self = this;\n function listener(...args) {\n self.off(name, listener);\n fn.apply(ctx, args);\n }\n listener._ = fn;\n return this.on(name, listener, ctx);\n }\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n for(let i = 0; i < evtArr.length; i += 1)evtArr[i].fn.apply(evtArr[i].ctx, data);\n return this;\n }\n off(name, callback) {\n const e = this.e || (this.e = {});\n const evts = e[name];\n const liveEvents = [];\n if (evts && callback) {\n for(let i = 0, len = evts.length; i < len; i += 1)if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n if (liveEvents.length) e[name] = liveEvents;\n else delete e[name];\n return this;\n }\n}\nexports.default = Emitter;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"w4pLy\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}],\"2zmtQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nparcelHelpers.exportAll(_dom, exports);\nvar _error = require(\"./error\");\nparcelHelpers.exportAll(_error, exports);\nvar _subtitle = require(\"./subtitle\");\nparcelHelpers.exportAll(_subtitle, exports);\nvar _file = require(\"./file\");\nparcelHelpers.exportAll(_file, exports);\nvar _property = require(\"./property\");\nparcelHelpers.exportAll(_property, exports);\nvar _time = require(\"./time\");\nparcelHelpers.exportAll(_time, exports);\nvar _format = require(\"./format\");\nparcelHelpers.exportAll(_format, exports);\nvar _compatibility = require(\"./compatibility\");\nparcelHelpers.exportAll(_compatibility, exports);\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"./subtitle\":\"NXvdl\",\"./file\":\"9RWGQ\",\"./property\":\"bfNe9\",\"./time\":\"afTRg\",\"./format\":\"1I37O\",\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"6a4fx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"query\", ()=>query);\nparcelHelpers.export(exports, \"queryAll\", ()=>queryAll);\nparcelHelpers.export(exports, \"addClass\", ()=>addClass);\nparcelHelpers.export(exports, \"removeClass\", ()=>removeClass);\nparcelHelpers.export(exports, \"hasClass\", ()=>hasClass);\nparcelHelpers.export(exports, \"append\", ()=>append);\nparcelHelpers.export(exports, \"remove\", ()=>remove);\nparcelHelpers.export(exports, \"setStyle\", ()=>setStyle);\nparcelHelpers.export(exports, \"setStyles\", ()=>setStyles);\nparcelHelpers.export(exports, \"getStyle\", ()=>getStyle);\nparcelHelpers.export(exports, \"siblings\", ()=>siblings);\nparcelHelpers.export(exports, \"inverseClass\", ()=>inverseClass);\nparcelHelpers.export(exports, \"tooltip\", ()=>tooltip);\nparcelHelpers.export(exports, \"isInViewport\", ()=>isInViewport);\nparcelHelpers.export(exports, \"includeFromEvent\", ()=>includeFromEvent);\nparcelHelpers.export(exports, \"replaceElement\", ()=>replaceElement);\nparcelHelpers.export(exports, \"createElement\", ()=>createElement);\nparcelHelpers.export(exports, \"getIcon\", ()=>getIcon);\nparcelHelpers.export(exports, \"setStyleText\", ()=>setStyleText);\nparcelHelpers.export(exports, \"supportsFlex\", ()=>supportsFlex);\nparcelHelpers.export(exports, \"getRect\", ()=>getRect);\nparcelHelpers.export(exports, \"loadImg\", ()=>loadImg);\nvar _compatibility = require(\"./compatibility\");\nfunction query(selector, parent = document) {\n return parent.querySelector(selector);\n}\nfunction queryAll(selector, parent = document) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction addClass(target, className) {\n return target.classList.add(className);\n}\nfunction removeClass(target, className) {\n return target.classList.remove(className);\n}\nfunction hasClass(target, className) {\n return target.classList.contains(className);\n}\nfunction append(parent, child) {\n if (child instanceof Element) parent.appendChild(child);\n else parent.insertAdjacentHTML('beforeend', String(child));\n return parent.lastElementChild || parent.lastChild;\n}\nfunction remove(child) {\n return child.parentNode.removeChild(child);\n}\nfunction setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\nfunction setStyles(element, styles) {\n for(const key in styles)setStyle(element, key, styles[key]);\n return element;\n}\nfunction getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\nfunction siblings(target) {\n return Array.from(target.parentElement.children).filter((item)=>item !== target);\n}\nfunction inverseClass(target, className) {\n siblings(target).forEach((item)=>removeClass(item, className));\n addClass(target, className);\n}\nfunction tooltip(target, msg, pos = 'top') {\n if (0, _compatibility.isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\nfunction 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}\nfunction includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\nfunction replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\nfunction createElement(tag) {\n return document.createElement(tag);\n}\nfunction 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}\nfunction 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') document.addEventListener('DOMContentLoaded', ()=>{\n document.head.appendChild($style);\n });\n else (document.head || document.documentElement).appendChild($style);\n }\n $style.textContent = style;\n}\nfunction supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\nfunction getRect(el) {\n return el.getBoundingClientRect();\n}\nfunction loadImg(url, scale) {\n return new Promise((resolve, reject)=>{\n const img = new Image();\n img.onload = function() {\n if (!scale || scale === 1) 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 canvas.toBlob((blob)=>{\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n scaledImg.onload = function() {\n resolve(scaledImg);\n };\n scaledImg.onerror = function() {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n scaledImg.src = blobUrl;\n });\n }\n };\n img.onerror = function() {\n reject(new Error(`Image load failed: ${url}`));\n };\n img.src = url;\n });\n}\n\n},{\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lHM5L\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"userAgent\", ()=>userAgent);\nparcelHelpers.export(exports, \"isSafari\", ()=>isSafari);\nparcelHelpers.export(exports, \"isWechat\", ()=>isWechat);\nparcelHelpers.export(exports, \"isIE\", ()=>isIE);\nparcelHelpers.export(exports, \"isAndroid\", ()=>isAndroid);\nparcelHelpers.export(exports, \"isIOS\", ()=>isIOS);\nparcelHelpers.export(exports, \"isIOS13\", ()=>isIOS13);\nparcelHelpers.export(exports, \"isMobile\", ()=>isMobile);\nparcelHelpers.export(exports, \"isBrowser\", ()=>isBrowser);\nconst userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.userAgent : '');\nconst isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nconst isWechat = /MicroMessenger/i.test(userAgent);\nconst isIE = /MSIE|Trident/i.test(userAgent);\nconst isAndroid = /android/i.test(userAgent);\nconst isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\nconst isIOS13 = isIOS || userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1;\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nconst isBrowser = typeof window !== 'undefined';\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"anKPB\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ArtPlayerError\", ()=>ArtPlayerError);\nparcelHelpers.export(exports, \"errorHandle\", ()=>errorHandle);\nclass ArtPlayerError extends Error {\n constructor(message, context){\n super(message);\n if (typeof Error.captureStackTrace === 'function') Error.captureStackTrace(this, context || this.constructor);\n this.name = 'ArtPlayerError';\n }\n}\nfunction errorHandle(condition, msg) {\n if (!condition) throw new ArtPlayerError(msg);\n return condition;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"NXvdl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"srtToVtt\", ()=>srtToVtt);\nparcelHelpers.export(exports, \"vttToBlob\", ()=>vttToBlob);\nparcelHelpers.export(exports, \"assToVtt\", ()=>assToVtt);\nfunction 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) ms = $2 + '00';\n if ($2.length === 2) ms = $2 + '0';\n return `${$1},${ms}`;\n });\n}\nfunction srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(fixSrt(srtText).replace(/\\{\\\\([ibu])\\}/g, '').replace(/\\{\\\\([ibu])1\\}/g, '<$1>').replace(/\\{([ibu])\\}/g, '<$1>').replace(/\\{\\/([ibu])\\}/g, '').replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2').replace(/{[\\s\\S]*?}/g, '').concat('\\r\\n\\r\\n'));\n}\nfunction vttToBlob(vttText) {\n return URL.createObjectURL(new Blob([\n vttText\n ], {\n type: 'text/vtt'\n }));\n}\nfunction assToVtt(ass) {\n const reAss = new RegExp(\"Dialogue:\\\\s\\\\d,(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\\\s\\\\S]*)$\", 'i');\n function fixTime(time = '') {\n return time.split(/[:.]/).map((item, index, arr)=>{\n if (index === arr.length - 1) {\n if (item.length === 1) return `.${item}00`;\n if (item.length === 2) return `.${item}0`;\n } else if (item.length === 1) return (index === 0 ? '0' : ':0') + item;\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n }).join('');\n }\n return \"WEBVTT\\n\\n\" + ass.split(/\\r?\\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].replace(/{[\\s\\S]*?}/g, '').replace(/(\\\\N)/g, '\\n').trim().split(/\\r?\\n/).map((item)=>item.trim()).join('\\n')\n };\n }).filter((line)=>line).map((line, index)=>{\n if (line) return index + 1 + '\\n' + `${line.start} --> ${line.end}` + '\\n' + `${line.text}`;\n return '';\n }).filter((line)=>line.trim()).join('\\n\\n');\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9RWGQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getExt\", ()=>getExt);\nparcelHelpers.export(exports, \"download\", ()=>download);\nfunction getExt(url) {\n if (url.includes('?')) return getExt(url.split('?')[0]);\n if (url.includes('#')) return getExt(url.split('#')[0]);\n return url.trim().toLowerCase().split('.').pop();\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"bfNe9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"def\", ()=>def);\nparcelHelpers.export(exports, \"has\", ()=>has);\nparcelHelpers.export(exports, \"get\", ()=>get);\nparcelHelpers.export(exports, \"mergeDeep\", ()=>mergeDeep);\nconst def = Object.defineProperty;\nconst { hasOwnProperty } = Object.prototype;\nfunction has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\nfunction get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\nfunction 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)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"afTRg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"sleep\", ()=>sleep);\nparcelHelpers.export(exports, \"debounce\", ()=>debounce);\nparcelHelpers.export(exports, \"throttle\", ()=>throttle);\nfunction sleep(ms = 0) {\n return new Promise((resolve)=>setTimeout(resolve, ms));\n}\nfunction debounce(func, duration) {\n let timeout;\n return function(...args) {\n const effect = ()=>{\n timeout = null;\n return func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\nfunction throttle(func, duration) {\n let shouldWait = false;\n return function(...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n setTimeout(function() {\n shouldWait = false;\n }, duration);\n }\n };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1I37O\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"clamp\", ()=>clamp);\nparcelHelpers.export(exports, \"capitalize\", ()=>capitalize);\nparcelHelpers.export(exports, \"secondToTime\", ()=>secondToTime);\nparcelHelpers.export(exports, \"escape\", ()=>escape);\nparcelHelpers.export(exports, \"unescape\", ()=>unescape);\nfunction clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction 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 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n}\nfunction escape(str) {\n return str.replace(/[&<>'\"]/g, (tag)=>({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"'\n })[tag] || tag);\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lGoF1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ComponentOption\", ()=>ComponentOption);\nvar _utils = require(\"../utils\");\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nfunction validElement(value, type, paths) {\n return (0, _utils.errorHandle)(type === s || type === n || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\nconst 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};\nexports.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: [\n f\n ],\n layers: [\n ComponentOption\n ],\n contextmenu: [\n ComponentOption\n ],\n settings: [\n ComponentOption\n ],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths)=>{\n const position = [\n 'top',\n 'left',\n 'right'\n ];\n return (0, _utils.errorHandle)(position.includes(value), `${paths.join('.')} only accept ${position.toString()} as parameters`);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"auZaO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.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: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen'\n ]\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1uh6E\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _utils = require(\"./utils\");\nclass Template {\n constructor(art){\n this.art = art;\n const { option, constructor } = art;\n if (option.container instanceof Element) this.$container = option.container;\n else {\n this.$container = (0, _utils.query)(option.container);\n (0, _utils.errorHandle)(this.$container, `No container element found by ${option.container}`);\n }\n (0, _utils.errorHandle)((0, _utils.supportsFlex)(), 'The current browser does not support flex layout');\n const type = this.$container.tagName.toLowerCase();\n (0, _utils.errorHandle)(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n (0, _utils.errorHandle)(constructor.instances.every((ins)=>ins.template.$container !== this.$container), 'Cannot mount multiple instances on the same dom element');\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.init();\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
${0, _packageJson.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 query(className) {\n return (0, _utils.query)(className, this.$container);\n }\n init() {\n const { option } = this.art;\n if (!option.useSSR) this.$container.innerHTML = Template.html;\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 if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n (0, _utils.errorHandle)(video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement, `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`);\n (0, _utils.replaceElement)(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n if (option.backdrop) (0, _utils.addClass)(this.$player, 'art-backdrop');\n if (0, _utils.isMobile) (0, _utils.addClass)(this.$player, 'art-mobile');\n }\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) this.$container.innerHTML = '';\n else (0, _utils.addClass)(this.$player, 'art-destroy');\n }\n}\nexports.default = Template;\n\n},{\"../package.json\":\"3QATz\",\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3udCS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _zhCn = require(\"./zh-cn\");\nvar _zhCnDefault = parcelHelpers.interopDefault(_zhCn);\nclass I18n {\n constructor(art){\n this.art = art;\n this.languages = {\n 'zh-cn': (0, _zhCnDefault.default)\n };\n this.language = {};\n this.update(art.option.i18n);\n }\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n get(key) {\n return this.language[key] || key;\n }\n update(value) {\n this.languages = (0, _utils.mergeDeep)(this.languages, value);\n this.init();\n }\n}\nexports.default = I18n;\n\n},{\"../utils\":\"2zmtQ\",\"./zh-cn\":\"3CYMl\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3CYMl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst zhCn = {\n 'Video Info': \"\\u7EDF\\u8BA1\\u4FE1\\u606F\",\n Close: \"\\u5173\\u95ED\",\n 'Video Load Failed': \"\\u52A0\\u8F7D\\u5931\\u8D25\",\n Volume: \"\\u97F3\\u91CF\",\n Play: \"\\u64AD\\u653E\",\n Pause: \"\\u6682\\u505C\",\n Rate: \"\\u901F\\u5EA6\",\n Mute: \"\\u9759\\u97F3\",\n 'Video Flip': \"\\u753B\\u9762\\u7FFB\\u8F6C\",\n Horizontal: \"\\u6C34\\u5E73\",\n Vertical: \"\\u5782\\u76F4\",\n Reconnect: \"\\u91CD\\u65B0\\u8FDE\\u63A5\",\n 'Show Setting': \"\\u663E\\u793A\\u8BBE\\u7F6E\",\n 'Hide Setting': \"\\u9690\\u85CF\\u8BBE\\u7F6E\",\n Screenshot: \"\\u622A\\u56FE\",\n 'Play Speed': \"\\u64AD\\u653E\\u901F\\u5EA6\",\n 'Aspect Ratio': \"\\u753B\\u9762\\u6BD4\\u4F8B\",\n Default: \"\\u9ED8\\u8BA4\",\n Normal: \"\\u6B63\\u5E38\",\n Open: \"\\u6253\\u5F00\",\n 'Switch Video': \"\\u5207\\u6362\",\n 'Switch Subtitle': \"\\u5207\\u6362\\u5B57\\u5E55\",\n Fullscreen: \"\\u5168\\u5C4F\",\n 'Exit Fullscreen': \"\\u9000\\u51FA\\u5168\\u5C4F\",\n 'Web Fullscreen': \"\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Exit Web Fullscreen': \"\\u9000\\u51FA\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Mini Player': \"\\u8FF7\\u4F60\\u64AD\\u653E\\u5668\",\n 'PIP Mode': \"\\u5F00\\u542F\\u753B\\u4E2D\\u753B\",\n 'Exit PIP Mode': \"\\u9000\\u51FA\\u753B\\u4E2D\\u753B\",\n 'PIP Not Supported': \"\\u4E0D\\u652F\\u6301\\u753B\\u4E2D\\u753B\",\n 'Fullscreen Not Supported': \"\\u4E0D\\u652F\\u6301\\u5168\\u5C4F\",\n 'Subtitle Offset': \"\\u5B57\\u5E55\\u504F\\u79FB\",\n 'Last Seen': \"\\u4E0A\\u6B21\\u770B\\u5230\",\n 'Jump Play': \"\\u8DF3\\u8F6C\\u64AD\\u653E\",\n AirPlay: \"\\u9694\\u7A7A\\u64AD\\u653E\",\n 'AirPlay Not Available': \"\\u9694\\u7A7A\\u64AD\\u653E\\u4E0D\\u53EF\\u7528\"\n};\nexports.default = zhCn;\nif (typeof window !== 'undefined') window['artplayer-i18n-zh-cn'] = zhCn;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9mB1U\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _urlMix = require(\"./urlMix\");\nvar _urlMixDefault = parcelHelpers.interopDefault(_urlMix);\nvar _attrMix = require(\"./attrMix\");\nvar _attrMixDefault = parcelHelpers.interopDefault(_attrMix);\nvar _playMix = require(\"./playMix\");\nvar _playMixDefault = parcelHelpers.interopDefault(_playMix);\nvar _pauseMix = require(\"./pauseMix\");\nvar _pauseMixDefault = parcelHelpers.interopDefault(_pauseMix);\nvar _toggleMix = require(\"./toggleMix\");\nvar _toggleMixDefault = parcelHelpers.interopDefault(_toggleMix);\nvar _seekMix = require(\"./seekMix\");\nvar _seekMixDefault = parcelHelpers.interopDefault(_seekMix);\nvar _volumeMix = require(\"./volumeMix\");\nvar _volumeMixDefault = parcelHelpers.interopDefault(_volumeMix);\nvar _currentTimeMix = require(\"./currentTimeMix\");\nvar _currentTimeMixDefault = parcelHelpers.interopDefault(_currentTimeMix);\nvar _durationMix = require(\"./durationMix\");\nvar _durationMixDefault = parcelHelpers.interopDefault(_durationMix);\nvar _switchMix = require(\"./switchMix\");\nvar _switchMixDefault = parcelHelpers.interopDefault(_switchMix);\nvar _playbackRateMix = require(\"./playbackRateMix\");\nvar _playbackRateMixDefault = parcelHelpers.interopDefault(_playbackRateMix);\nvar _aspectRatioMix = require(\"./aspectRatioMix\");\nvar _aspectRatioMixDefault = parcelHelpers.interopDefault(_aspectRatioMix);\nvar _screenshotMix = require(\"./screenshotMix\");\nvar _screenshotMixDefault = parcelHelpers.interopDefault(_screenshotMix);\nvar _fullscreenMix = require(\"./fullscreenMix\");\nvar _fullscreenMixDefault = parcelHelpers.interopDefault(_fullscreenMix);\nvar _fullscreenWebMix = require(\"./fullscreenWebMix\");\nvar _fullscreenWebMixDefault = parcelHelpers.interopDefault(_fullscreenWebMix);\nvar _pipMix = require(\"./pipMix\");\nvar _pipMixDefault = parcelHelpers.interopDefault(_pipMix);\nvar _loadedMix = require(\"./loadedMix\");\nvar _loadedMixDefault = parcelHelpers.interopDefault(_loadedMix);\nvar _playedMix = require(\"./playedMix\");\nvar _playedMixDefault = parcelHelpers.interopDefault(_playedMix);\nvar _playingMix = require(\"./playingMix\");\nvar _playingMixDefault = parcelHelpers.interopDefault(_playingMix);\nvar _autoSizeMix = require(\"./autoSizeMix\");\nvar _autoSizeMixDefault = parcelHelpers.interopDefault(_autoSizeMix);\nvar _rectMix = require(\"./rectMix\");\nvar _rectMixDefault = parcelHelpers.interopDefault(_rectMix);\nvar _flipMix = require(\"./flipMix\");\nvar _flipMixDefault = parcelHelpers.interopDefault(_flipMix);\nvar _miniMix = require(\"./miniMix\");\nvar _miniMixDefault = parcelHelpers.interopDefault(_miniMix);\nvar _posterMix = require(\"./posterMix\");\nvar _posterMixDefault = parcelHelpers.interopDefault(_posterMix);\nvar _autoHeightMix = require(\"./autoHeightMix\");\nvar _autoHeightMixDefault = parcelHelpers.interopDefault(_autoHeightMix);\nvar _cssVarMix = require(\"./cssVarMix\");\nvar _cssVarMixDefault = parcelHelpers.interopDefault(_cssVarMix);\nvar _themeMix = require(\"./themeMix\");\nvar _themeMixDefault = parcelHelpers.interopDefault(_themeMix);\nvar _typeMix = require(\"./typeMix\");\nvar _typeMixDefault = parcelHelpers.interopDefault(_typeMix);\nvar _stateMix = require(\"./stateMix\");\nvar _stateMixDefault = parcelHelpers.interopDefault(_stateMix);\nvar _subtitleOffsetMix = require(\"./subtitleOffsetMix\");\nvar _subtitleOffsetMixDefault = parcelHelpers.interopDefault(_subtitleOffsetMix);\nvar _airplayMix = require(\"./airplayMix\");\nvar _airplayMixDefault = parcelHelpers.interopDefault(_airplayMix);\nvar _qualityMix = require(\"./qualityMix\");\nvar _qualityMixDefault = parcelHelpers.interopDefault(_qualityMix);\nvar _thumbnailsMix = require(\"./thumbnailsMix\");\nvar _thumbnailsMixDefault = parcelHelpers.interopDefault(_thumbnailsMix);\nvar _optionInit = require(\"./optionInit\");\nvar _optionInitDefault = parcelHelpers.interopDefault(_optionInit);\nvar _eventInit = require(\"./eventInit\");\nvar _eventInitDefault = parcelHelpers.interopDefault(_eventInit);\nclass Player {\n constructor(art){\n (0, _urlMixDefault.default)(art);\n (0, _attrMixDefault.default)(art);\n (0, _playMixDefault.default)(art);\n (0, _pauseMixDefault.default)(art);\n (0, _toggleMixDefault.default)(art);\n (0, _seekMixDefault.default)(art);\n (0, _volumeMixDefault.default)(art);\n (0, _currentTimeMixDefault.default)(art);\n (0, _durationMixDefault.default)(art);\n (0, _switchMixDefault.default)(art);\n (0, _playbackRateMixDefault.default)(art);\n (0, _aspectRatioMixDefault.default)(art);\n (0, _screenshotMixDefault.default)(art);\n (0, _fullscreenMixDefault.default)(art);\n (0, _fullscreenWebMixDefault.default)(art);\n (0, _pipMixDefault.default)(art);\n (0, _loadedMixDefault.default)(art);\n (0, _playedMixDefault.default)(art);\n (0, _playingMixDefault.default)(art);\n (0, _autoSizeMixDefault.default)(art);\n (0, _rectMixDefault.default)(art);\n (0, _flipMixDefault.default)(art);\n (0, _miniMixDefault.default)(art);\n (0, _posterMixDefault.default)(art);\n (0, _autoHeightMixDefault.default)(art);\n (0, _cssVarMixDefault.default)(art);\n (0, _themeMixDefault.default)(art);\n (0, _typeMixDefault.default)(art);\n (0, _stateMixDefault.default)(art);\n (0, _subtitleOffsetMixDefault.default)(art);\n (0, _airplayMixDefault.default)(art);\n (0, _qualityMixDefault.default)(art);\n (0, _thumbnailsMixDefault.default)(art);\n (0, _eventInitDefault.default)(art);\n (0, _optionInitDefault.default)(art);\n }\n}\nexports.default = Player;\n\n},{\"./urlMix\":\"gOtyE\",\"./attrMix\":\"53BhY\",\"./playMix\":\"1banF\",\"./pauseMix\":\"3wC1g\",\"./toggleMix\":\"27lNh\",\"./seekMix\":\"h3e53\",\"./volumeMix\":\"7ZLkO\",\"./currentTimeMix\":\"e6oTn\",\"./durationMix\":\"asbQ7\",\"./switchMix\":\"5l7tM\",\"./playbackRateMix\":\"dHiZV\",\"./aspectRatioMix\":\"7TM4D\",\"./screenshotMix\":\"9LouN\",\"./fullscreenMix\":\"dYSsN\",\"./fullscreenWebMix\":\"fF9Os\",\"./pipMix\":\"hDMWY\",\"./loadedMix\":\"7RkX2\",\"./playedMix\":\"jXVGX\",\"./playingMix\":\"5vvMN\",\"./autoSizeMix\":\"eukuj\",\"./rectMix\":\"dSo4g\",\"./flipMix\":\"dJ7GF\",\"./miniMix\":\"kZI2p\",\"./posterMix\":\"fIZNk\",\"./autoHeightMix\":\"24b5p\",\"./cssVarMix\":\"gK6U1\",\"./themeMix\":\"aIG6s\",\"./typeMix\":\"i5sGy\",\"./stateMix\":\"juKiS\",\"./subtitleOffsetMix\":\"arSae\",\"./airplayMix\":\"kIugI\",\"./qualityMix\":\"lDgAt\",\"./thumbnailsMix\":\"5Mloy\",\"./optionInit\":\"a5DcW\",\"./eventInit\":\"jpd3q\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gOtyE\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>urlMix);\nvar _utils = require(\"../utils\");\nfunction urlMix(art) {\n const { option, template: { $video } } = art;\n (0, _utils.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 || (0, _utils.getExt)(newUrl);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n await (0, _utils.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 if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) art.once('video:canplay', ()=>{\n art.emit('restart', newUrl);\n });\n }\n } else {\n await (0, _utils.sleep)();\n art.loading.show = true;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"53BhY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>attrMix);\nvar _utils = require(\"../utils\");\nfunction attrMix(art) {\n const { template: { $video } } = art;\n (0, _utils.def)(art, 'attr', {\n value (key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1banF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playMix);\nvar _utils = require(\"../utils\");\nfunction playMix(art) {\n const { i18n, notice, option, constructor: { instances }, template: { $video } } = art;\n (0, _utils.def)(art, 'play', {\n value: async function() {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n if (option.mutex) for(let index = 0; index < instances.length; index++){\n const instance = instances[index];\n if (instance !== art) instance.pause();\n }\n return result;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3wC1g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pauseMix);\nvar _utils = require(\"../utils\");\nfunction pauseMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"27lNh\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>toggleMix);\nvar _utils = require(\"../utils\");\nfunction toggleMix(art) {\n (0, _utils.def)(art, 'toggle', {\n value () {\n if (art.playing) return art.pause();\n else return art.play();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"h3e53\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>seekMix);\nvar _utils = require(\"../utils\");\nfunction seekMix(art) {\n const { notice } = art;\n (0, _utils.def)(art, 'seek', {\n set (time) {\n art.currentTime = time;\n if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n art.emit('seek', art.currentTime);\n }\n });\n (0, _utils.def)(art, 'forward', {\n set (time) {\n art.seek = art.currentTime + time;\n }\n });\n (0, _utils.def)(art, 'backward', {\n set (time) {\n art.seek = art.currentTime - time;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7ZLkO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volumeMix);\nvar _utils = require(\"../utils\");\nfunction volumeMix(art) {\n const { template: { $video }, i18n, notice, storage } = art;\n (0, _utils.def)(art, 'volume', {\n get: ()=>$video.volume || 0,\n set: (percentage)=>{\n $video.volume = (0, _utils.clamp)(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) storage.set('volume', $video.volume);\n }\n });\n (0, _utils.def)(art, 'muted', {\n get: ()=>$video.muted,\n set: (muted)=>{\n $video.muted = muted;\n art.emit('muted', muted);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"e6oTn\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>currentTimeMix);\nvar _utils = require(\"../utils\");\nfunction currentTimeMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'currentTime', {\n get: ()=>$video.currentTime || 0,\n set: (time)=>{\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = (0, _utils.clamp)(time, 0, art.duration);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"asbQ7\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>durationMix);\nvar _utils = require(\"../utils\");\nfunction durationMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5l7tM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>switchMix);\nvar _utils = require(\"../utils\");\nfunction 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 art.pause();\n art.url = url;\n art.notice.show = '';\n art.once('video:error', reject);\n art.once('video:loadedmetadata', ()=>{\n art.currentTime = currentTime;\n });\n art.once('video:canplay', async ()=>{\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n if (playing) await art.play();\n art.notice.show = '';\n resolve();\n });\n });\n }\n (0, _utils.def)(art, 'switchQuality', {\n value: (url)=>{\n return switchUrl(url, art.currentTime);\n }\n });\n (0, _utils.def)(art, 'switchUrl', {\n value: (url)=>{\n return switchUrl(url, 0);\n }\n });\n (0, _utils.def)(art, 'switch', {\n set: art.switchUrl\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dHiZV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRateMix);\nvar _utils = require(\"../utils\");\nfunction playbackRateMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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 art.playbackRate = 1;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7TM4D\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatioMix);\nvar _utils = require(\"../utils\");\nfunction aspectRatioMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n (0, _utils.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 (0, _utils.setStyle)($video, 'width', null);\n (0, _utils.setStyle)($video, 'height', null);\n (0, _utils.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 if (playerRatio > setupRatio) {\n (0, _utils.setStyle)($video, 'width', `${setupRatio * clientHeight}px`);\n (0, _utils.setStyle)($video, 'height', '100%');\n (0, _utils.setStyle)($video, 'margin', '0 auto');\n } else {\n (0, _utils.setStyle)($video, 'width', '100%');\n (0, _utils.setStyle)($video, 'height', `${clientWidth / setupRatio}px`);\n (0, _utils.setStyle)($video, 'margin', 'auto 0');\n }\n $player.dataset.aspectRatio = ratio;\n }\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LouN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshotMix);\nvar _utils = require(\"../utils\");\nfunction screenshotMix(art) {\n const { notice, template: { $video } } = art;\n const $canvas = (0, _utils.createElement)('canvas');\n (0, _utils.def)(art, 'getDataURL', {\n value: ()=>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 (0, _utils.def)(art, 'getBlobUrl', {\n value: ()=>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 (0, _utils.def)(art, 'screenshot', {\n value: async (name)=>{\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${(0, _utils.secondToTime)($video.currentTime)}`;\n (0, _utils.download)(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dYSsN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenMix);\nvar _screenfull = require(\"../libs/screenfull\");\nvar _screenfullDefault = parcelHelpers.interopDefault(_screenfull);\nvar _utils = require(\"../utils\");\nfunction fullscreenMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n const nativeScreenfull = (art)=>{\n (0, _screenfullDefault.default).on('change', ()=>{\n art.emit('fullscreen', (0, _screenfullDefault.default).isFullscreen);\n if ((0, _screenfullDefault.default).isFullscreen) {\n art.state = 'fullscreen';\n (0, _utils.addClass)($player, 'art-fullscreen');\n } else (0, _utils.removeClass)($player, 'art-fullscreen');\n art.emit('resize');\n });\n (0, _screenfullDefault.default).on('error', (event)=>{\n art.emit('fullscreenError', event);\n });\n (0, _utils.def)(art, 'fullscreen', {\n get () {\n return (0, _screenfullDefault.default).isFullscreen;\n },\n async set (value) {\n if (value) await (0, _screenfullDefault.default).request($player);\n else await (0, _screenfullDefault.default).exit();\n }\n });\n };\n const webkitScreenfull = (art)=>{\n art.proxy(document, 'webkitfullscreenchange', ()=>{\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n (0, _utils.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 $video.webkitExitFullscreen();\n }\n });\n };\n art.once('video:loadedmetadata', ()=>{\n if ((0, _screenfullDefault.default).isEnabled) nativeScreenfull(art);\n else if ($video.webkitSupportsFullscreen) webkitScreenfull(art);\n else (0, _utils.def)(art, 'fullscreen', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('Fullscreen Not Supported');\n }\n });\n // Asynchronous setting\n (0, _utils.def)(art, 'fullscreen', (0, _utils.get)(art, 'fullscreen'));\n });\n}\n\n},{\"../libs/screenfull\":\"9CUfT\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9CUfT\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst 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];\nconst nativeAPI = (()=>{\n if (typeof document === 'undefined') return false;\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n for (const methodList of methodMap){\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries())returnValue[unprefixedMethods[index]] = method;\n return returnValue;\n }\n }\n return false;\n})();\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror\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 screenfull.on('change', onFullScreenEntered);\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenEntered).catch(reject);\n });\n },\n exit () {\n return new Promise((resolve, reject)=>{\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n const onFullScreenExit = ()=>{\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n screenfull.on('change', onFullScreenExit);\n const returnPromise = document[nativeAPI.exitFullscreen]();\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenExit).catch(reject);\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) document.addEventListener(eventName, callback, false);\n },\n off (event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) document.removeEventListener(eventName, callback, false);\n },\n raw: nativeAPI\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});\nif (!nativeAPI) screenfull = {\n isEnabled: false\n};\nexports.default = screenfull;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fF9Os\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWebMix);\nvar _utils = require(\"../utils\");\nfunction fullscreenWebMix(art) {\n const { constructor, template: { $container, $player } } = art;\n let cssText = '';\n (0, _utils.def)(art, 'fullscreenWeb', {\n get () {\n return (0, _utils.hasClass)($player, 'art-fullscreen-web');\n },\n set (value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)(document.body, $player);\n art.state = 'fullscreenWeb';\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', '100%');\n (0, _utils.addClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)($container, $player);\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n (0, _utils.removeClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n art.emit('resize');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hDMWY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pipMix);\nvar _utils = require(\"../utils\");\nfunction nativePip(art) {\n const { template: { $video }, proxy, notice } = art;\n $video.disablePictureInPicture = false;\n (0, _utils.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 document.exitPictureInPicture().catch((err)=>{\n notice.show = err;\n throw err;\n });\n }\n });\n proxy($video, 'enterpictureinpicture', ()=>{\n art.emit('pip', true);\n });\n proxy($video, 'leavepictureinpicture', ()=>{\n art.emit('pip', false);\n });\n}\nfunction webkitPip(art) {\n const { $video } = art.template;\n $video.webkitSetPresentationMode('inline');\n (0, _utils.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}\nfunction pipMix(art) {\n const { i18n, notice, template: { $video } } = art;\n if (document.pictureInPictureEnabled) nativePip(art);\n else if ($video.webkitSupportsPresentationMode) webkitPip(art);\n else (0, _utils.def)(art, 'pip', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('PIP Not Supported');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7RkX2\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>loadedMix);\nvar _utils = require(\"../utils\");\nfunction loadedMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'loaded', {\n get: ()=>art.loadedTime / $video.duration\n });\n (0, _utils.def)(art, 'loadedTime', {\n get: ()=>{\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jXVGX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playedMix);\nvar _utils = require(\"../utils\");\nfunction playedMix(art) {\n (0, _utils.def)(art, 'played', {\n get: ()=>art.currentTime / art.duration\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5vvMN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playingMix);\nvar _utils = require(\"../utils\");\nfunction playingMix(art) {\n const { $video } = art.template;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eukuj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoSizeMix);\nvar _utils = require(\"../utils\");\nfunction autoSizeMix(art) {\n const { $container, $player, $video } = art.template;\n (0, _utils.def)(art, 'autoSize', {\n value () {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = (0, _utils.getRect)($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n if (containerRatio > videoRatio) {\n const percentage = height * videoRatio / width * 100;\n (0, _utils.setStyle)($player, 'width', `${percentage}%`);\n (0, _utils.setStyle)($player, 'height', '100%');\n } else {\n const percentage = width / videoRatio / height * 100;\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dSo4g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>rectMix);\nvar _utils = require(\"../utils\");\nfunction rectMix(art) {\n (0, _utils.def)(art, 'rect', {\n get: ()=>{\n return (0, _utils.getRect)(art.template.$player);\n }\n });\n const keys = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width'\n ];\n for(let index = 0; index < keys.length; index++){\n const key = keys[index];\n (0, _utils.def)(art, key, {\n get: ()=>{\n return art.rect[key];\n }\n });\n }\n (0, _utils.def)(art, 'x', {\n get: ()=>{\n return art.left + window.pageXOffset;\n }\n });\n (0, _utils.def)(art, 'y', {\n get: ()=>{\n return art.top + window.pageYOffset;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dJ7GF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flipMix);\nvar _utils = require(\"../utils\");\nfunction flipMix(art) {\n const { template: { $player }, i18n, notice } = art;\n (0, _utils.def)(art, 'flip', {\n get () {\n return $player.dataset.flip || 'normal';\n },\n set (flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') delete $player.dataset.flip;\n else $player.dataset.flip = flip;\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get((0, _utils.capitalize)(flip))}`;\n art.emit('flip', flip);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kZI2p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniMix);\nvar _utils = require(\"../utils\");\nfunction miniMix(art) {\n const { icons, proxy, storage, template: { $player, $video } } = art;\n let isDragging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.removeClass)($player, 'art-mini');\n (0, _utils.setStyle)($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n function initState($play, $pause) {\n if (art.playing) {\n (0, _utils.setStyle)($play, 'display', `none`);\n (0, _utils.setStyle)($pause, 'display', `flex`);\n } else {\n (0, _utils.setStyle)($play, 'display', `flex`);\n (0, _utils.setStyle)($pause, 'display', `none`);\n }\n }\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.append)($mini, $video);\n return (0, _utils.setStyle)($mini, 'display', 'flex');\n } else {\n const $mini = (0, _utils.createElement)('div');\n (0, _utils.addClass)($mini, 'art-mini-popup');\n (0, _utils.append)(document.body, $mini);\n art.template.$mini = $mini;\n (0, _utils.append)($mini, $video);\n const $close = (0, _utils.append)($mini, `
`);\n (0, _utils.append)($close, icons.close);\n proxy($close, 'click', hideMini);\n const $state = (0, _utils.append)($mini, `
`);\n const $play = (0, _utils.append)($state, icons.play);\n const $pause = (0, _utils.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 proxy($mini, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n (0, _utils.addClass)($mini, 'art-mini-dragging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n (0, _utils.setStyle)($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) {\n isDragging = false;\n (0, _utils.removeClass)($mini, 'art-mini-dragging');\n const rect = (0, _utils.getRect)($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n (0, _utils.setStyle)($mini, 'left', `${rect.left}px`);\n (0, _utils.setStyle)($mini, 'top', `${rect.top}px`);\n (0, _utils.setStyle)($mini, 'transform', null);\n }\n });\n return $mini;\n }\n }\n function initMini() {\n const { $mini } = art.template;\n const rect = (0, _utils.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 (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n }\n (0, _utils.def)(art, 'mini', {\n get () {\n return (0, _utils.hasClass)($player, 'art-mini');\n },\n set (value) {\n if (value) {\n art.state = 'mini';\n (0, _utils.addClass)($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (typeof top === 'number' && typeof left === 'number') {\n (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n if (!(0, _utils.isInViewport)($mini)) initMini();\n } else initMini();\n art.emit('mini', true);\n } else hideMini();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fIZNk\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>posterMix);\nvar _utils = require(\"../utils\");\nfunction posterMix(art) {\n const { template: { $poster } } = art;\n (0, _utils.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 (0, _utils.setStyle)($poster, 'backgroundImage', `url(${url})`);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"24b5p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoHeightMix);\nvar _utils = require(\"../utils\");\nfunction autoHeightMix(art) {\n const { template: { $container, $video } } = art;\n (0, _utils.def)(art, 'autoHeight', {\n value () {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n (0, _utils.setStyle)($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gK6U1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>cssVarMix);\nvar _utils = require(\"../utils\");\nfunction cssVarMix(art) {\n const { $player } = art.template;\n (0, _utils.def)(art, 'cssVar', {\n value (key, value) {\n if (value) return $player.style.setProperty(key, value);\n else return getComputedStyle($player).getPropertyValue(key);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aIG6s\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>themeMix);\nvar _utils = require(\"../utils\");\nfunction themeMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"i5sGy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>typeMix);\nvar _utils = require(\"../utils\");\nfunction typeMix(art) {\n (0, _utils.def)(art, 'type', {\n get () {\n return art.option.type;\n },\n set (type) {\n art.option.type = type;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"juKiS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>stateMix);\nvar _utils = require(\"../utils\");\nfunction stateMix(art) {\n const states = [\n 'mini',\n 'pip',\n 'fullscreen',\n 'fullscreenWeb'\n ];\n (0, _utils.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]) art[prop] = false;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"arSae\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffsetMix);\nvar _utils = require(\"../utils\");\nfunction subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n (0, _utils.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 = (0, _utils.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 = (0, _utils.clamp)(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kIugI\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplayMix);\nvar _utils = require(\"../utils\");\nfunction airplayMix(art) {\n const { i18n, notice, proxy, template: { $video } } = art;\n let available = true;\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) 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 available = false;\n (0, _utils.def)(art, 'airplay', {\n value () {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else notice.show = i18n.get('AirPlay Not Available');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lDgAt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>qualityMix);\nvar _utils = require(\"../utils\");\nfunction qualityMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Mloy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>thumbnailsMix);\nvar _utils = require(\"../utils\");\nfunction thumbnailsMix(art) {\n const { events, option, template: { $progress, $video } } = art;\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\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 (0, _utils.setStyle)($thumbnails, 'backgroundImage', `url(${image.src})`);\n (0, _utils.setStyle)($thumbnails, 'height', `${height2}px`);\n (0, _utils.setStyle)($thumbnails, 'width', `${width2}px`);\n (0, _utils.setStyle)($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', 0);\n else if (posWidth > $progress.clientWidth - width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n else (0, _utils.setStyle)($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n events.hover($progress, ()=>{\n isHover = true;\n }, ()=>{\n isHover = false;\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 const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true;\n image = await (0, _utils.loadImg)(url, scale);\n isLoad = true;\n }\n if (!isLoad || !isHover) return;\n const width = $progress.clientWidth * percentage;\n (0, _utils.setStyle)($thumbnails, 'display', 'flex');\n if (width > 0 && width < $progress.clientWidth) showThumbnails(width);\n else if (!(0, _utils.isMobile)) (0, _utils.setStyle)($thumbnails, 'display', 'none');\n if (isMobileDragging) {\n clearTimeout(timer);\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"a5DcW\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>optionInit);\nvar _utils = require(\"../utils\");\nfunction optionInit(art) {\n const { option, storage, template: { $video, $poster } } = art;\n for(const key in option.moreVideoAttr)art.attr(key, option.moreVideoAttr[key]);\n if (option.muted) art.muted = option.muted;\n if (option.volume) $video.volume = (0, _utils.clamp)(option.volume, 0, 1);\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') $video.volume = (0, _utils.clamp)(volumeStorage, 0, 1);\n if (option.poster) (0, _utils.setStyle)($poster, 'backgroundImage', `url(${option.poster})`);\n if (option.autoplay) $video.autoplay = option.autoplay;\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n if (option.theme) option.cssVar['--art-theme'] = option.theme;\n for(const key in option.cssVar)art.cssVar(key, option.cssVar[key]);\n art.url = option.url;\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jpd3q\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>eventInit);\nvar _config = require(\"../config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _utils = require(\"../utils\");\nfunction eventInit(art) {\n const { i18n, notice, option, constructor, proxy, template: { $player, $video, $poster } } = art;\n let reconnectTime = 0;\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)proxy($video, (0, _configDefault.default).events[index], (event)=>{\n art.emit(`video:${event.type}`, event);\n });\n // art.on('video:abort', () => {\n // });\n art.on('video:canplay', ()=>{\n reconnectTime = 0;\n art.loading.show = false;\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 // art.on('video:canplaythrough', () => {\n // });\n // art.on('video:durationchange', () => {\n // });\n // art.on('video:emptied', () => {\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 art.on('video:error', async (error)=>{\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await (0, _utils.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 (0, _utils.addClass)($player, 'art-error');\n await (0, _utils.sleep)(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n }\n });\n // art.on('video:loadeddata', () => {\n // });\n art.on('video:loadedmetadata', ()=>{\n art.emit('resize');\n if (0, _utils.isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n art.on('video:loadstart', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n art.on('video:pause', ()=>{\n art.controls.show = true;\n art.mask.show = true;\n });\n art.on('video:play', ()=>{\n art.mask.show = false;\n (0, _utils.setStyle)($poster, 'display', 'none');\n });\n art.on('video:playing', ()=>{\n art.mask.show = false;\n });\n art.on('video:progress', ()=>{\n if (art.playing) art.loading.show = false;\n });\n // art.on('video:ratechange', () => {\n // });\n art.on('video:seeked', ()=>{\n art.loading.show = false;\n art.mask.show = true;\n });\n art.on('video:seeking', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n // art.on('video:stalled', () => {\n // });\n // art.on('video:suspend', () => {\n // });\n art.on('video:timeupdate', ()=>{\n art.mask.show = false;\n });\n // art.on('video:volumechange', () => {\n // });\n art.on('video:waiting', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n\n},{\"../config\":\"auZaO\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3aoXC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _fullscreen = require(\"./fullscreen\");\nvar _fullscreenDefault = parcelHelpers.interopDefault(_fullscreen);\nvar _fullscreenWeb = require(\"./fullscreenWeb\");\nvar _fullscreenWebDefault = parcelHelpers.interopDefault(_fullscreenWeb);\nvar _pip = require(\"./pip\");\nvar _pipDefault = parcelHelpers.interopDefault(_pip);\nvar _playAndPause = require(\"./playAndPause\");\nvar _playAndPauseDefault = parcelHelpers.interopDefault(_playAndPause);\nvar _progress = require(\"./progress\");\nvar _progressDefault = parcelHelpers.interopDefault(_progress);\nvar _time = require(\"./time\");\nvar _timeDefault = parcelHelpers.interopDefault(_time);\nvar _volume = require(\"./volume\");\nvar _volumeDefault = parcelHelpers.interopDefault(_volume);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _screenshot = require(\"./screenshot\");\nvar _screenshotDefault = parcelHelpers.interopDefault(_screenshot);\nvar _airplay = require(\"./airplay\");\nvar _airplayDefault = parcelHelpers.interopDefault(_airplay);\nvar _utils = require(\"../utils\");\nclass Control extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n art.on('mousemove', ()=>{\n if (!(0, _utils.isMobile)) this.show = true;\n });\n art.on('click', ()=>{\n if (0, _utils.isMobile) this.toggle();\n else this.show = true;\n });\n art.on('document:mousemove', (event)=>{\n this.isHover = (0, _utils.includeFromEvent)(event, $bottom);\n });\n art.on('video:timeupdate', ()=>{\n if (!art.setting.show && !this.isHover && !art.isInput && art.playing && this.show && Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME) this.show = false;\n });\n art.on('control', (state)=>{\n if (state) {\n (0, _utils.removeClass)($player, 'art-hide-cursor');\n (0, _utils.addClass)($player, 'art-hover');\n this.timer = Date.now();\n } else {\n (0, _utils.addClass)($player, 'art-hide-cursor');\n (0, _utils.removeClass)($player, 'art-hover');\n }\n });\n this.init();\n }\n init() {\n const { option } = this.art;\n if (!option.isLive) this.add((0, _progressDefault.default)({\n name: 'progress',\n position: 'top',\n index: 10\n }));\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20\n });\n this.add((0, _playAndPauseDefault.default)({\n name: 'playAndPause',\n position: 'left',\n index: 10\n }));\n this.add((0, _volumeDefault.default)({\n name: 'volume',\n position: 'left',\n index: 20\n }));\n if (!option.isLive) this.add((0, _timeDefault.default)({\n name: 'time',\n position: 'left',\n index: 30\n }));\n if (option.quality.length) (0, _utils.sleep)().then(()=>{\n this.art.quality = option.quality;\n });\n if (option.screenshot && !(0, _utils.isMobile)) this.add((0, _screenshotDefault.default)({\n name: 'screenshot',\n position: 'right',\n index: 20\n }));\n if (option.setting) this.add((0, _settingDefault.default)({\n name: 'setting',\n position: 'right',\n index: 30\n }));\n if (option.pip) this.add((0, _pipDefault.default)({\n name: 'pip',\n position: 'right',\n index: 40\n }));\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) this.add((0, _airplayDefault.default)({\n name: 'airplay',\n position: 'right',\n index: 50\n }));\n if (option.fullscreenWeb) this.add((0, _fullscreenWebDefault.default)({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60\n }));\n if (option.fullscreen) this.add((0, _fullscreenDefault.default)({\n name: 'fullscreen',\n position: 'right',\n index: 70\n }));\n for(let index = 0; index < option.controls.length; index++)this.add(option.controls[index]);\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\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 (0, _utils.errorHandle)(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n super.add(option);\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) (0, _utils.inverseClass)(item.$control_item, 'art-current');\n }\n }\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n (0, _utils.addClass)($ref, 'art-control-selector');\n const $value = (0, _utils.createElement)('div');\n (0, _utils.addClass)($value, 'art-selector-value');\n (0, _utils.append)($value, option.html);\n $ref.innerText = '';\n (0, _utils.append)($ref, $value);\n const $list = (0, _utils.createElement)('div');\n (0, _utils.addClass)($list, 'art-selector-list');\n (0, _utils.append)($ref, $list);\n for(let index = 0; index < option.selector.length; index++){\n const item = option.selector[index];\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-selector-item');\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n (0, _utils.append)($list, $item);\n (0, _utils.def)(item, '$control_option', {\n get: ()=>option.selector\n });\n (0, _utils.def)(item, '$control_item', {\n get: ()=>$item\n });\n (0, _utils.def)(item, '$control_value', {\n get: ()=>$value\n });\n }\n const event = proxy($list, 'click', async (event)=>{\n const path = event.composedPath() || [];\n const item = option.selector.find((item)=>item.$control_item === path.find(($item)=>item.$control_item === $item));\n this.check(item);\n if (option.onSelect) $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n });\n events.push(event);\n }\n}\nexports.default = Control;\n\n},{\"../utils/component\":\"euCTd\",\"./fullscreen\":\"9LKex\",\"./fullscreenWeb\":\"htT34\",\"./pip\":\"7zSba\",\"./playAndPause\":\"kGz8j\",\"./progress\":\"7zX2b\",\"./time\":\"eUF3T\",\"./volume\":\"5Jp6A\",\"./setting\":\"aPd5g\",\"./screenshot\":\"cEkSl\",\"./airplay\":\"iUshw\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"euCTd\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nvar _error = require(\"./error\");\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"../scheme\");\nclass 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 get show() {\n return (0, _dom.hasClass)(this.art.template.$player, `art-${this.name}-show`);\n }\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) (0, _dom.addClass)($player, className);\n else (0, _dom.removeClass)($player, className);\n this.art.emit(this.name, value);\n }\n toggle() {\n this.show = !this.show;\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n (0, _optionValidatorDefault.default)(option, (0, _scheme.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 (0, _error.errorHandle)(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n this.id += 1;\n const $ref = (0, _dom.createElement)('div');\n (0, _dom.addClass)($ref, `art-${this.name}`);\n (0, _dom.addClass)($ref, `art-${this.name}-${name}`);\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) nextChild.insertAdjacentElement('beforebegin', $ref);\n else (0, _dom.append)(this.$parent, $ref);\n if (option.html) (0, _dom.append)($ref, option.html);\n if (option.style) (0, _dom.setStyles)($ref, option.style);\n if (option.tooltip) (0, _dom.tooltip)($ref, option.tooltip);\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 if (option.selector && [\n 'left',\n 'right'\n ].includes(option.position)) this.selector(option, $ref, events);\n this[name] = $ref;\n this.cache.set(name, {\n $ref,\n events,\n option\n });\n if (option.mounted) option.mounted.call(this.art, $ref);\n return $ref;\n }\n remove(name) {\n const item = this.cache.get(name);\n (0, _error.errorHandle)(item, `Can't find [${name}] from the [${this.name}]`);\n if (item.option.beforeUnmount) item.option.beforeUnmount.call(this.art, item.$ref);\n for(let index = 0; index < item.events.length; index++)this.art.events.remove(item.events[index]);\n this.cache.delete(name);\n delete this[name];\n (0, _dom.remove)(item.$ref);\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}\nexports.default = Component;\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"option-validator\":\"glVMO\",\"../scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LKex\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreen);\nvar _utils = require(\"../utils\");\nfunction fullscreen(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenOn = (0, _utils.append)($control, icons.fullscreenOn);\n const $fullscreenOff = (0, _utils.append)($control, icons.fullscreenOff);\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreen = !art.fullscreen;\n });\n art.on('fullscreen', (state)=>{\n if (state) {\n (0, _utils.tooltip)($control, i18n.get('Exit Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"htT34\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWeb);\nvar _utils = require(\"../utils\");\nfunction fullscreenWeb(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenWebOn = (0, _utils.append)($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = (0, _utils.append)($control, icons.fullscreenWebOff);\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n art.on('fullscreenWeb', (value)=>{\n if (value) {\n (0, _utils.tooltip)($control, i18n.get('Exit Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zSba\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pip);\nvar _utils = require(\"../utils\");\nfunction pip(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.pip);\n proxy($control, 'click', ()=>{\n art.pip = !art.pip;\n });\n art.on('pip', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kGz8j\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playAndPause);\nvar _utils = require(\"../utils\");\nfunction playAndPause(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $play = (0, _utils.append)($control, icons.play);\n const $pause = (0, _utils.append)($control, icons.pause);\n (0, _utils.tooltip)($play, i18n.get('Play'));\n (0, _utils.tooltip)($pause, i18n.get('Pause'));\n proxy($play, 'click', ()=>{\n art.play();\n });\n proxy($pause, 'click', ()=>{\n art.pause();\n });\n function showPlay() {\n (0, _utils.setStyle)($play, 'display', 'flex');\n (0, _utils.setStyle)($pause, 'display', 'none');\n }\n function showPause() {\n (0, _utils.setStyle)($play, 'display', 'none');\n (0, _utils.setStyle)($pause, 'display', 'flex');\n }\n if (art.playing) showPause();\n else showPlay();\n art.on('video:playing', ()=>{\n showPause();\n });\n art.on('video:pause', ()=>{\n showPlay();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zX2b\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getPosFromEvent\", ()=>getPosFromEvent);\nparcelHelpers.export(exports, \"setCurrentTime\", ()=>setCurrentTime);\nparcelHelpers.export(exports, \"default\", ()=>progress);\nvar _utils = require(\"../utils\");\nfunction getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = (0, _utils.getRect)($progress);\n const eventLeft = (0, _utils.isMobile) ? event.touches[0].clientX : event.clientX;\n const width = (0, _utils.clamp)(eventLeft - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * art.duration;\n const time = (0, _utils.secondToTime)(second);\n const percentage = (0, _utils.clamp)(width / $progress.clientWidth, 0, 1);\n return {\n second,\n time,\n width,\n percentage\n };\n}\nfunction 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}\nfunction progress(options) {\n return (art)=>{\n const { icons, option, proxy } = art;\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 const $hover = (0, _utils.query)('.art-progress-hover', $control);\n const $loaded = (0, _utils.query)('.art-progress-loaded', $control);\n const $played = (0, _utils.query)('.art-progress-played', $control);\n const $highlight = (0, _utils.query)('.art-progress-highlight', $control);\n const $indicator = (0, _utils.query)('.art-progress-indicator', $control);\n const $tip = (0, _utils.query)('.art-progress-tip', $control);\n if (icons.indicator) (0, _utils.append)($indicator, icons.indicator);\n else (0, _utils.setStyle)($indicator, 'backgroundColor', 'var(--art-theme)');\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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 = (0, _utils.clamp)(item.time, 0, art.duration) / art.duration * 100;\n const html = ``;\n (0, _utils.append)($highlight, html);\n }\n }\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'loaded') (0, _utils.setStyle)($loaded, 'width', `${percentage * 100}%`);\n if (type === 'hover') (0, _utils.setStyle)($hover, 'width', `${percentage * 100}%`);\n if (type === 'played') {\n (0, _utils.setStyle)($played, 'width', `${percentage * 100}%`);\n (0, _utils.setStyle)($indicator, 'left', `${percentage * 100}%`);\n }\n if (isMobileDragging) {\n (0, _utils.setStyle)($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = (0, _utils.secondToTime)(percentage * art.duration);\n showTime(event, {\n width,\n time\n });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(()=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n }, 500);\n }\n }\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n if (art.constructor.USE_RAF) 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 art.on('video:progress', ()=>{\n art.emit('setBar', 'loaded', art.loaded);\n });\n art.on('video:ended', ()=>{\n art.emit('setBar', 'played', 1);\n });\n }\n art.emit('setBar', 'loaded', art.loaded || 0);\n if (!(0, _utils.isMobile)) {\n proxy($control, 'click', (event)=>{\n if (event.target !== $indicator) setCurrentTime(art, event);\n });\n proxy($control, 'mousemove', (event)=>{\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n (0, _utils.setStyle)($tip, 'display', 'flex');\n if ((0, _utils.includeFromEvent)(event, $highlight)) showHighlight(event);\n else showTime(event);\n });\n proxy($control, 'mouseleave', (event)=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n proxy($control, 'mousedown', (event)=>{\n isDragging = event.button === 0;\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 art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eUF3T\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>time);\nvar _utils = require(\"../utils\");\nfunction time(option) {\n return (art)=>({\n ...option,\n style: (0, _utils.isMobile) ? {\n fontSize: '12px',\n padding: '0 5px'\n } : {\n cursor: 'auto',\n padding: '0 10px'\n },\n mounted: ($control)=>{\n function getTime() {\n const newTime = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n if (newTime !== $control.innerText) $control.innerText = newTime;\n }\n getTime();\n const events = [\n 'video:loadedmetadata',\n 'video:timeupdate',\n 'video:progress'\n ];\n for(let index = 0; index < events.length; index++)art.on(events[index], getTime);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Jp6A\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volume);\nvar _utils = require(\"../utils\");\nfunction volume(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons } = art;\n const $volume = (0, _utils.append)($control, icons.volume);\n const $close = (0, _utils.append)($control, icons.volumeClose);\n const $panel = (0, _utils.append)($control, '
');\n const $inner = (0, _utils.append)($panel, '
');\n const $value = (0, _utils.append)($inner, `
`);\n const $slider = (0, _utils.append)($inner, `
`);\n const $handle = (0, _utils.append)($slider, `
`);\n const $loaded = (0, _utils.append)($handle, `
`);\n const $indicator = (0, _utils.append)($slider, `
`);\n function getVolumeFromEvent(event) {\n const { top, height } = (0, _utils.getRect)($slider);\n return 1 - (event.clientY - top) / height;\n }\n function update() {\n if (art.muted || art.volume === 0) {\n (0, _utils.setStyle)($volume, 'display', 'none');\n (0, _utils.setStyle)($close, 'display', 'flex');\n (0, _utils.setStyle)($indicator, 'top', '100%');\n (0, _utils.setStyle)($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n (0, _utils.setStyle)($volume, 'display', 'flex');\n (0, _utils.setStyle)($close, 'display', 'none');\n (0, _utils.setStyle)($indicator, 'top', `${100 - percentage}%`);\n (0, _utils.setStyle)($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n update();\n art.on('video:volumechange', update);\n proxy($volume, 'click', ()=>{\n art.muted = true;\n });\n proxy($close, 'click', ()=>{\n art.muted = false;\n });\n if (0, _utils.isMobile) (0, _utils.setStyle)($panel, 'display', 'none');\n else {\n let isDragging = false;\n proxy($slider, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aPd5g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>setting);\nvar _utils = require(\"../utils\");\nfunction setting(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.setting);\n proxy($control, 'click', ()=>{\n art.setting.toggle();\n art.setting.resize();\n });\n art.on('setting', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cEkSl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshot);\nvar _utils = require(\"../utils\");\nfunction screenshot(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.screenshot);\n proxy($control, 'click', ()=>{\n art.screenshot();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iUshw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplay);\nvar _utils = require(\"../utils\");\nfunction airplay(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.airplay);\n proxy($control, 'click', ()=>art.airplay());\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5YYHx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _version = require(\"./version\");\nvar _versionDefault = parcelHelpers.interopDefault(_version);\nvar _close = require(\"./close\");\nvar _closeDefault = parcelHelpers.interopDefault(_close);\nclass Contextmenu extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { option, proxy, template: { $player, $contextmenu } } = this.art;\n if (option.playbackRate) this.add((0, _playbackRateDefault.default)({\n name: 'playbackRate',\n index: 10\n }));\n if (option.aspectRatio) this.add((0, _aspectRatioDefault.default)({\n name: 'aspectRatio',\n index: 20\n }));\n if (option.flip) this.add((0, _flipDefault.default)({\n name: 'flip',\n index: 30\n }));\n this.add((0, _infoDefault.default)({\n name: 'info',\n index: 40\n }));\n this.add((0, _versionDefault.default)({\n name: 'version',\n index: 50\n }));\n this.add((0, _closeDefault.default)({\n name: 'close',\n index: 60\n }));\n for(let index = 0; index < option.contextmenu.length; index++)this.add(option.contextmenu[index]);\n proxy($player, 'contextmenu', (event)=>{\n if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n this.show = true;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = (0, _utils.getRect)($player);\n const { height: mHeight, width: mWidth } = (0, _utils.getRect)($contextmenu);\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n if (mouseX + mWidth > cLeft + cWidth) menuLeft = cWidth - mWidth;\n if (mouseY + mHeight > cTop + cHeight) menuTop = cHeight - mHeight;\n (0, _utils.setStyles)($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`\n });\n });\n proxy($player, 'click', (event)=>{\n if (!(0, _utils.includeFromEvent)(event, $contextmenu)) this.show = false;\n });\n this.art.on('blur', ()=>{\n this.show = false;\n });\n }\n}\nexports.default = Contextmenu;\n\n},{\"../utils\":\"2zmtQ\",\"../utils/component\":\"euCTd\",\"./playbackRate\":\"lWYo9\",\"./aspectRatio\":\"5d6ZO\",\"./flip\":\"1GWlZ\",\"./info\":\"c5pls\",\"./version\":\"lD1aU\",\"./close\":\"4jD3d\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lWYo9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nvar _utils = require(\"../utils\");\nfunction playbackRate(option) {\n return (art)=>{\n const { i18n, constructor: { PLAYBACK_RATE } } = art;\n const html = PLAYBACK_RATE.map((item)=>`${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`).join('');\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 = (0, _utils.query)('[data-value=\"1\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('video:ratechange', ()=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>Number(item.dataset.value) === art.playbackRate);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5d6ZO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nvar _utils = require(\"../utils\");\nfunction aspectRatio(option) {\n return (art)=>{\n const { i18n, constructor: { ASPECT_RATIO } } = art;\n const html = ASPECT_RATIO.map((item)=>`${item === 'default' ? i18n.get('Default') : item}`).join('');\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 = (0, _utils.query)('[data-value=\"default\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('aspectRatio', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1GWlZ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(option) {\n return (art)=>{\n const { i18n, constructor: { FLIP } } = art;\n const html = FLIP.map((item)=>`${i18n.get((0, _utils.capitalize)(item))}`).join('');\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 = (0, _utils.query)('[data-value=\"normal\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('flip', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"c5pls\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>info);\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lD1aU\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>function(option) {\n return {\n ...option,\n html: `ArtPlayer ${0, _packageJson.version}`\n };\n });\nvar _packageJson = require(\"../../package.json\");\n\n},{\"../../package.json\":\"3QATz\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4jD3d\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>close);\nfunction close(option) {\n return (art)=>({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu)=>{\n contextmenu.show = false;\n }\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"j6kB4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Info extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'info';\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor, template: { $infoPanel, $infoClose, $video } } = this.art;\n proxy($infoClose, 'click', ()=>{\n this.show = false;\n });\n let timer = null;\n const $types = (0, _utils.queryAll)('[data-video]', $infoPanel) || [];\n this.art.on('destroy', ()=>clearTimeout(timer));\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) item.innerText = innerText;\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n loop();\n }\n}\nexports.default = Info;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ldqPL\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nclass Subtitle extends (0, _componentDefault.default) {\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 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 get url() {\n return this.art.template.$track.src;\n }\n set url(url) {\n this.switch(url);\n }\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0];\n }\n get activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\n }\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') return (0, _utils.setStyles)($subtitle, key);\n return (0, _utils.setStyle)($subtitle, key, value);\n }\n update() {\n const { option: { subtitle }, template: { $subtitle } } = this.art;\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues.map((cue, index)=>cue.text.split(/\\r?\\n/).filter((line)=>line.trim()).map((line)=>`
\n ${subtitle.escape ? (0, _utils.escape)(line) : line}\n
`).join('')).join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\n }\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = {\n ...option.subtitle,\n ...newOption,\n url\n };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n return subUrl;\n }\n createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n const $newTrack = (0, _utils.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 this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n (0, _utils.remove)($track);\n (0, _utils.append)($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', ()=>this.update());\n }\n async init(subtitleOption) {\n const { notice, template: { $subtitle } } = this.art;\n if (!this.textTrack) return null;\n (0, _optionValidatorDefault.default)(subtitleOption, (0, _schemeDefault.default).subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n return fetch(subtitleOption.url).then((response)=>response.arrayBuffer()).then((buffer)=>{\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch(subtitleOption.type || (0, _utils.getExt)(subtitleOption.url)){\n case 'srt':\n {\n const vtt = (0, _utils.srtToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'ass':\n {\n const vtt = (0, _utils.assToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'vtt':\n {\n const vttNew = subtitleOption.onVttLoad(text);\n return (0, _utils.vttToBlob)(vttNew);\n }\n default:\n return subtitleOption.url;\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 }).catch((err)=>{\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\nexports.default = Subtitle;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"option-validator\":\"glVMO\",\"./scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5jGH8\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _clickInit = require(\"./clickInit\");\nvar _clickInitDefault = parcelHelpers.interopDefault(_clickInit);\nvar _hoverInit = require(\"./hoverInit\");\nvar _hoverInitDefault = parcelHelpers.interopDefault(_hoverInit);\nvar _moveInit = require(\"./moveInit\");\nvar _moveInitDefault = parcelHelpers.interopDefault(_moveInit);\nvar _resizeInit = require(\"./resizeInit\");\nvar _resizeInitDefault = parcelHelpers.interopDefault(_resizeInit);\nvar _gestureInit = require(\"./gestureInit\");\nvar _gestureInitDefault = parcelHelpers.interopDefault(_gestureInit);\nvar _viewInit = require(\"./viewInit\");\nvar _viewInitDefault = parcelHelpers.interopDefault(_viewInit);\nvar _documentInit = require(\"./documentInit\");\nvar _documentInitDefault = parcelHelpers.interopDefault(_documentInit);\nvar _updateInit = require(\"./updateInit\");\nvar _updateInitDefault = parcelHelpers.interopDefault(_updateInit);\nvar _restoreInit = require(\"./restoreInit\");\nvar _restoreInitDefault = parcelHelpers.interopDefault(_restoreInit);\nclass Events {\n constructor(art){\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n (0, _clickInitDefault.default)(art, this);\n (0, _hoverInitDefault.default)(art, this);\n (0, _moveInitDefault.default)(art, this);\n (0, _resizeInitDefault.default)(art, this);\n (0, _gestureInitDefault.default)(art, this);\n (0, _viewInitDefault.default)(art, this);\n (0, _documentInitDefault.default)(art, this);\n (0, _updateInitDefault.default)(art, this);\n (0, _restoreInitDefault.default)(art, this);\n }\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) return name.map((item)=>this.proxy(target, item, callback, option));\n target.addEventListener(name, callback, option);\n const destroy = ()=>target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) this.proxy(target, 'mouseenter', mouseenter);\n if (mouseleave) this.proxy(target, 'mouseleave', mouseleave);\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 destroy() {\n for(let index = 0; index < this.destroyEvents.length; index++)this.destroyEvents[index]();\n }\n}\nexports.default = Events;\n\n},{\"./clickInit\":\"5AH6F\",\"./hoverInit\":\"egLHg\",\"./moveInit\":\"iGcl4\",\"./resizeInit\":\"1DNHs\",\"./gestureInit\":\"efKpC\",\"./viewInit\":\"fNuBy\",\"./documentInit\":\"kHtUy\",\"./updateInit\":\"8cq8y\",\"./restoreInit\":\"3XeLA\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5AH6F\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>clickInit);\nvar _utils = require(\"../utils\");\nfunction clickInit(art, events) {\n const { constructor, template: { $player, $video } } = art;\n events.proxy(document, [\n 'click',\n 'contextmenu'\n ], (event)=>{\n if ((0, _utils.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 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 const clicks = clickTimes.filter((t)=>now - t <= DBCLICK_TIME);\n switch(clicks.length){\n case 1:\n art.emit('click', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) art.toggle();\n } else art.toggle();\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) art.toggle();\n } else if (DBCLICK_FULLSCREEN) art.fullscreen = !art.fullscreen;\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"egLHg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>hoverInit);\nvar _utils = require(\"../utils\");\nfunction hoverInit(art, events) {\n const { $player } = art.template;\n events.hover($player, (event)=>{\n (0, _utils.addClass)($player, 'art-hover');\n art.emit('hover', true, event);\n }, (event)=>{\n (0, _utils.removeClass)($player, 'art-hover');\n art.emit('hover', false, event);\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iGcl4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>moveInit);\nfunction moveInit(art, events) {\n const { $player } = art.template;\n events.proxy($player, 'mousemove', (event)=>{\n art.emit('mousemove', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1DNHs\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>resizeInit);\nvar _utils = require(\"../utils\");\nfunction resizeInit(art, events) {\n const { option, constructor } = art;\n art.on('resize', ()=>{\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) art.autoSize();\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n const resizeFn = (0, _utils.debounce)(()=>art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, [\n 'orientationchange',\n 'resize'\n ], ()=>resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, 'change', ()=>resizeFn());\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"efKpC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>gestureInit);\nvar _utils = require(\"../utils\");\nvar _progress = require(\"../control/progress\");\nfunction GetSlideAngle(dx, dy) {\n return Math.atan2(dy, dx) * 180 / Math.PI;\n}\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) return result;\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) result = 4;\n else if (angle >= 45 && angle < 135) result = 1;\n else if (angle >= -135 && angle < -45) result = 2;\n else if (angle >= 135 && angle <= 180 || angle >= -180 && angle < -135) result = 3;\n return result;\n}\nfunction gestureInit(art, events) {\n if ((0, _utils.isMobile) && !art.option.isLive) {\n const { $video, $progress } = art.template;\n let touchTarget = null;\n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n const onTouchStart = (event)=>{\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) (0, _progress.setCurrentTime)(art, event);\n isDragging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\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 = [\n 3,\n 4\n ].includes(direction);\n const isVertical = [\n 1,\n 2\n ].includes(direction);\n const isLegal = isHorizontal && !art.isRotate || isVertical && art.isRotate;\n if (isLegal) {\n const ratioX = (0, _utils.clamp)((pageX - startX) / art.width, -1, 1);\n const ratioY = (0, _utils.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 = (0, _utils.clamp)(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', (0, _utils.clamp)(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${(0, _utils.secondToTime)(currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\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 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 events.proxy($progress, 'touchstart', (event)=>{\n touchTarget = $progress;\n onTouchStart(event);\n });\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n\n},{\"../utils\":\"2zmtQ\",\"../control/progress\":\"7zX2b\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fNuBy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>viewInit);\nvar _utils = require(\"../utils\");\nfunction viewInit(art, events) {\n const { option, constructor, template: { $container } } = art;\n const scrollFn = (0, _utils.throttle)(()=>{\n art.emit('view', (0, _utils.isInViewport)($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n events.proxy(window, 'scroll', ()=>scrollFn());\n art.on('view', (state)=>{\n if (option.autoMini) art.mini = !state;\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kHtUy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>documentInit);\nfunction documentInit(art, events) {\n events.proxy(document, 'mousemove', (event)=>{\n art.emit('document:mousemove', event);\n });\n events.proxy(document, 'mouseup', (event)=>{\n art.emit('document:mouseup', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8cq8y\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>updateInit);\nfunction updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n (function update() {\n if (art.playing) art.emit('raf');\n if (!art.isDestroy) timer = requestAnimationFrame(update);\n })();\n art.on('destroy', ()=>{\n cancelAnimationFrame(timer);\n });\n }\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3XeLA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>restoreInit);\nfunction restoreInit(art, events) {\n//\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8a1Mr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Hotkey {\n constructor(art){\n this.art = art;\n this.keys = {};\n if (art.option.hotkey && !(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor } = this.art;\n this.add('Escape', ()=>{\n if (this.art.fullscreenWeb) this.art.fullscreenWeb = false;\n });\n this.add('Space', ()=>{\n this.art.toggle();\n });\n this.add('ArrowLeft', ()=>{\n this.art.backward = constructor.SEEK_STEP;\n });\n this.add('ArrowUp', ()=>{\n this.art.volume += constructor.VOLUME_STEP;\n });\n this.add('ArrowRight', ()=>{\n this.art.forward = constructor.SEEK_STEP;\n });\n this.add('ArrowDown', ()=>{\n this.art.volume -= constructor.VOLUME_STEP;\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 (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true' && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {\n const events = this.keys[event.code];\n if (events) {\n event.preventDefault();\n for(let index = 0; index < events.length; index++)events[index].call(this.art, event);\n this.art.emit('hotkey', event);\n }\n }\n }\n this.art.emit('keydown', event);\n });\n }\n add(key, event) {\n if (this.keys[key]) this.keys[key].push(event);\n else this.keys[key] = [\n event\n ];\n return this;\n }\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) this.keys[key].splice(index, 1);\n }\n return this;\n }\n}\nexports.default = Hotkey;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3WCuK\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Layer extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, template: { $layer } } = art;\n this.name = 'layer';\n this.$parent = $layer;\n for(let index = 0; index < option.layers.length; index++)this.add(option.layers[index]);\n }\n}\nexports.default = Layer;\n\n},{\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"inwRV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Loading extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'loading';\n (0, _utils.append)(art.template.$loading, art.icons.loading);\n }\n}\nexports.default = Loading;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iAojr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Notice {\n constructor(art){\n this.art = art;\n this.timer = null;\n }\n set show(msg) {\n const { constructor, template: { $player, $noticeInner } } = this.art;\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n (0, _utils.addClass)($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n $noticeInner.innerText = '';\n (0, _utils.removeClass)($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else (0, _utils.removeClass)($player, 'art-notice-show');\n }\n}\nexports.default = Notice;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4ZuYu\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Mask extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'mask';\n const { template, icons, events } = art;\n const $state = (0, _utils.append)(template.$state, icons.state);\n const $error = (0, _utils.append)(template.$state, icons.error);\n (0, _utils.setStyle)($error, 'display', 'none');\n art.on('destroy', ()=>{\n (0, _utils.setStyle)($state, 'display', 'none');\n (0, _utils.setStyle)($error, 'display', null);\n });\n events.proxy(template.$state, 'click', ()=>art.play());\n }\n}\nexports.default = Mask;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aEpTt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _loadingSvg = require(\"bundle-text:./loading.svg\");\nvar _loadingSvgDefault = parcelHelpers.interopDefault(_loadingSvg);\nvar _stateSvg = require(\"bundle-text:./state.svg\");\nvar _stateSvgDefault = parcelHelpers.interopDefault(_stateSvg);\nvar _checkSvg = require(\"bundle-text:./check.svg\");\nvar _checkSvgDefault = parcelHelpers.interopDefault(_checkSvg);\nvar _playSvg = require(\"bundle-text:./play.svg\");\nvar _playSvgDefault = parcelHelpers.interopDefault(_playSvg);\nvar _pauseSvg = require(\"bundle-text:./pause.svg\");\nvar _pauseSvgDefault = parcelHelpers.interopDefault(_pauseSvg);\nvar _volumeSvg = require(\"bundle-text:./volume.svg\");\nvar _volumeSvgDefault = parcelHelpers.interopDefault(_volumeSvg);\nvar _volumeCloseSvg = require(\"bundle-text:./volume-close.svg\");\nvar _volumeCloseSvgDefault = parcelHelpers.interopDefault(_volumeCloseSvg);\nvar _screenshotSvg = require(\"bundle-text:./screenshot.svg\");\nvar _screenshotSvgDefault = parcelHelpers.interopDefault(_screenshotSvg);\nvar _settingSvg = require(\"bundle-text:./setting.svg\");\nvar _settingSvgDefault = parcelHelpers.interopDefault(_settingSvg);\nvar _arrowLeftSvg = require(\"bundle-text:./arrow-left.svg\");\nvar _arrowLeftSvgDefault = parcelHelpers.interopDefault(_arrowLeftSvg);\nvar _arrowRightSvg = require(\"bundle-text:./arrow-right.svg\");\nvar _arrowRightSvgDefault = parcelHelpers.interopDefault(_arrowRightSvg);\nvar _playbackRateSvg = require(\"bundle-text:./playback-rate.svg\");\nvar _playbackRateSvgDefault = parcelHelpers.interopDefault(_playbackRateSvg);\nvar _aspectRatioSvg = require(\"bundle-text:./aspect-ratio.svg\");\nvar _aspectRatioSvgDefault = parcelHelpers.interopDefault(_aspectRatioSvg);\nvar _configSvg = require(\"bundle-text:./config.svg\");\nvar _configSvgDefault = parcelHelpers.interopDefault(_configSvg);\nvar _pipSvg = require(\"bundle-text:./pip.svg\");\nvar _pipSvgDefault = parcelHelpers.interopDefault(_pipSvg);\nvar _lockSvg = require(\"bundle-text:./lock.svg\");\nvar _lockSvgDefault = parcelHelpers.interopDefault(_lockSvg);\nvar _unlockSvg = require(\"bundle-text:./unlock.svg\");\nvar _unlockSvgDefault = parcelHelpers.interopDefault(_unlockSvg);\nvar _fullscreenOffSvg = require(\"bundle-text:./fullscreen-off.svg\");\nvar _fullscreenOffSvgDefault = parcelHelpers.interopDefault(_fullscreenOffSvg);\nvar _fullscreenOnSvg = require(\"bundle-text:./fullscreen-on.svg\");\nvar _fullscreenOnSvgDefault = parcelHelpers.interopDefault(_fullscreenOnSvg);\nvar _fullscreenWebOffSvg = require(\"bundle-text:./fullscreen-web-off.svg\");\nvar _fullscreenWebOffSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOffSvg);\nvar _fullscreenWebOnSvg = require(\"bundle-text:./fullscreen-web-on.svg\");\nvar _fullscreenWebOnSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOnSvg);\nvar _switchOnSvg = require(\"bundle-text:./switch-on.svg\");\nvar _switchOnSvgDefault = parcelHelpers.interopDefault(_switchOnSvg);\nvar _switchOffSvg = require(\"bundle-text:./switch-off.svg\");\nvar _switchOffSvgDefault = parcelHelpers.interopDefault(_switchOffSvg);\nvar _flipSvg = require(\"bundle-text:./flip.svg\");\nvar _flipSvgDefault = parcelHelpers.interopDefault(_flipSvg);\nvar _errorSvg = require(\"bundle-text:./error.svg\");\nvar _errorSvgDefault = parcelHelpers.interopDefault(_errorSvg);\nvar _closeSvg = require(\"bundle-text:./close.svg\");\nvar _closeSvgDefault = parcelHelpers.interopDefault(_closeSvg);\nvar _airplaySvg = require(\"bundle-text:./airplay.svg\");\nvar _airplaySvgDefault = parcelHelpers.interopDefault(_airplaySvg);\nclass Icons {\n constructor(art){\n const icons = {\n loading: (0, _loadingSvgDefault.default),\n state: (0, _stateSvgDefault.default),\n play: (0, _playSvgDefault.default),\n pause: (0, _pauseSvgDefault.default),\n check: (0, _checkSvgDefault.default),\n volume: (0, _volumeSvgDefault.default),\n volumeClose: (0, _volumeCloseSvgDefault.default),\n screenshot: (0, _screenshotSvgDefault.default),\n setting: (0, _settingSvgDefault.default),\n pip: (0, _pipSvgDefault.default),\n arrowLeft: (0, _arrowLeftSvgDefault.default),\n arrowRight: (0, _arrowRightSvgDefault.default),\n playbackRate: (0, _playbackRateSvgDefault.default),\n aspectRatio: (0, _aspectRatioSvgDefault.default),\n config: (0, _configSvgDefault.default),\n lock: (0, _lockSvgDefault.default),\n flip: (0, _flipSvgDefault.default),\n unlock: (0, _unlockSvgDefault.default),\n fullscreenOff: (0, _fullscreenOffSvgDefault.default),\n fullscreenOn: (0, _fullscreenOnSvgDefault.default),\n fullscreenWebOff: (0, _fullscreenWebOffSvgDefault.default),\n fullscreenWebOn: (0, _fullscreenWebOnSvgDefault.default),\n switchOn: (0, _switchOnSvgDefault.default),\n switchOff: (0, _switchOffSvgDefault.default),\n error: (0, _errorSvgDefault.default),\n close: (0, _closeSvgDefault.default),\n airplay: (0, _airplaySvgDefault.default),\n ...art.option.icons\n };\n for(const key in icons)(0, _utils.def)(this, key, {\n get: ()=>(0, _utils.getIcon)(key, icons[key])\n });\n }\n}\nexports.default = Icons;\n\n},{\"../utils\":\"2zmtQ\",\"bundle-text:./loading.svg\":\"hvcIK\",\"bundle-text:./state.svg\":\"lvrOo\",\"bundle-text:./check.svg\":\"dEWuy\",\"bundle-text:./play.svg\":\"bIRRL\",\"bundle-text:./pause.svg\":\"8qmIt\",\"bundle-text:./volume.svg\":\"d1KXb\",\"bundle-text:./volume-close.svg\":\"6M8TS\",\"bundle-text:./screenshot.svg\":\"1GD8Z\",\"bundle-text:./setting.svg\":\"jmLr7\",\"bundle-text:./arrow-left.svg\":\"8ACXK\",\"bundle-text:./arrow-right.svg\":\"eUczZ\",\"bundle-text:./playback-rate.svg\":\"cYmA3\",\"bundle-text:./aspect-ratio.svg\":\"8l32s\",\"bundle-text:./config.svg\":\"8Erz8\",\"bundle-text:./pip.svg\":\"gx5TO\",\"bundle-text:./lock.svg\":\"7IJRz\",\"bundle-text:./unlock.svg\":\"dBJfA\",\"bundle-text:./fullscreen-off.svg\":\"84gJT\",\"bundle-text:./fullscreen-on.svg\":\"eGYQU\",\"bundle-text:./fullscreen-web-off.svg\":\"aGs9s\",\"bundle-text:./fullscreen-web-on.svg\":\"1r85n\",\"bundle-text:./switch-on.svg\":\"fNd7D\",\"bundle-text:./switch-off.svg\":\"eCzDs\",\"bundle-text:./flip.svg\":\"84k5P\",\"bundle-text:./error.svg\":\"lMJEW\",\"bundle-text:./close.svg\":\"4Kq91\",\"bundle-text:./airplay.svg\":\"a7OND\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hvcIK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lvrOo\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dEWuy\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"bIRRL\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8qmIt\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"d1KXb\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"6M8TS\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1GD8Z\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"jmLr7\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8ACXK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eUczZ\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"cYmA3\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8l32s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8Erz8\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"gx5TO\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"7IJRz\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dBJfA\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84gJT\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eGYQU\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"aGs9s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1r85n\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"fNd7D\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eCzDs\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84k5P\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lMJEW\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"4Kq91\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"a7OND\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"9Bz5C\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _subtitleOffset = require(\"./subtitleOffset\");\nvar _subtitleOffsetDefault = parcelHelpers.interopDefault(_subtitleOffset);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _utils = require(\"../utils\");\nclass Setting extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, controls, template: { $setting } } = art;\n this.name = 'setting';\n this.$parent = $setting;\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [\n ...this.builtin,\n ...option.settings\n ];\n if (option.setting) {\n this.format();\n this.render();\n art.on('blur', ()=>{\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n art.on('focus', (event)=>{\n const isControl = (0, _utils.includeFromEvent)(event, controls.setting);\n const isSetting = (0, _utils.includeFromEvent)(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n art.on('resize', ()=>this.resize());\n }\n }\n get builtin() {\n const result = [];\n const { option } = this.art;\n if (option.playbackRate) result.push((0, _playbackRateDefault.default)(this.art));\n if (option.aspectRatio) result.push((0, _aspectRatioDefault.default)(this.art));\n if (option.flip) result.push((0, _flipDefault.default)(this.art));\n if (option.subtitleOffset) result.push((0, _subtitleOffsetDefault.default)(this.art));\n return result;\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) this.traverse.call(this, callback, item.selector);\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) (0, _utils.inverseClass)(item.$item, 'art-current');\n }, target.$option);\n this.render(target.$parents);\n }\n format(option = this.option, parent, parents, names = []) {\n for(let index = 0; index < option.length; index++){\n const item = option[index];\n if (item?.name) {\n (0, _utils.errorHandle)(!names.includes(item.name), `The [${item.name}] already exists in [setting]`);\n names.push(item.name);\n } else item.name = `setting-${this.id++}`;\n if (!item.$formatted) {\n (0, _utils.def)(item, '$parent', {\n get: ()=>parent\n });\n (0, _utils.def)(item, '$parents', {\n get: ()=>parents\n });\n (0, _utils.def)(item, '$option', {\n get: ()=>option\n });\n const $events = [];\n (0, _utils.def)(item, '$events', {\n get: ()=>$events\n });\n (0, _utils.def)(item, '$formatted', {\n get: ()=>true\n });\n }\n this.format(item.selector || [], item, option, names);\n }\n this.option = option;\n }\n find(name = '') {\n let result = null;\n this.traverse((item)=>{\n if (item.name === name) result = item;\n });\n return result;\n }\n resize() {\n const { controls, constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT }, template: { $player, $setting } } = this.art;\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = (0, _utils.getRect)(controls.setting);\n const { left: playerLeft, width: playerWidth } = (0, _utils.getRect)($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n const settingHeight = this.active === this.option ? this.active.length * SETTING_ITEM_HEIGHT : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n (0, _utils.setStyle)($setting, 'height', `${settingHeight}px`);\n (0, _utils.setStyle)($setting, 'width', `${settingWidth}px`);\n if (this.art.isRotate || (0, _utils.isMobile)) return;\n if (settingLeft + settingWidth > playerWidth) {\n (0, _utils.setStyle)($setting, 'left', null);\n (0, _utils.setStyle)($setting, 'right', null);\n } else {\n (0, _utils.setStyle)($setting, 'left', `${settingLeft}px`);\n (0, _utils.setStyle)($setting, 'right', 'auto');\n }\n }\n }\n inactivate(item) {\n for(let index = 0; index < item.$events.length; index++)this.art.events.remove(item.$events[index]);\n item.$events.length = 0;\n }\n remove(name) {\n const item = this.find(name);\n (0, _utils.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) (0, _utils.remove)(item.$item);\n this.render();\n }\n update(target) {\n const item = this.find(target.name);\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 return this.add(target);\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 createHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const { proxy, icons: { arrowLeft }, constructor: { SETTING_ITEM_HEIGHT } } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.setStyle)($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.addClass)($item, 'art-setting-item-back');\n const $left = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n (0, _utils.append)($icon, arrowLeft);\n (0, _utils.append)($left, $icon);\n (0, _utils.append)($left, item.$parent.html);\n const event = proxy($item, 'click', ()=>this.render(item.$parents));\n item.$parent.$events.push(event);\n (0, _utils.append)($panel, $item);\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 let type = 'selector';\n if ((0, _utils.has)(item, 'switch')) type = 'switch';\n if ((0, _utils.has)(item, 'range')) type = 'range';\n if ((0, _utils.has)(item, 'onClick')) type = 'button';\n const { icons, proxy, constructor } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.setStyle)($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n const $left = (0, _utils.append)($item, '
');\n const $right = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n switch(type){\n case 'button':\n case 'switch':\n case 'range':\n (0, _utils.append)($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) (0, _utils.append)($icon, item.icon || icons.config);\n else (0, _utils.append)($icon, icons.check);\n break;\n default:\n break;\n }\n (0, _utils.append)($left, $icon);\n (0, _utils.def)(item, '$icon', {\n configurable: true,\n get: ()=>$icon\n });\n (0, _utils.def)(item, 'icon', {\n configurable: true,\n get () {\n return $icon.innerHTML;\n },\n set (value) {\n $icon.innerHTML = '';\n (0, _utils.append)($icon, value);\n }\n });\n const $html = (0, _utils.createElement)('div');\n (0, _utils.addClass)($html, 'art-setting-item-left-text');\n (0, _utils.append)($html, item.html || '');\n (0, _utils.append)($left, $html);\n (0, _utils.def)(item, '$html', {\n configurable: true,\n get: ()=>$html\n });\n (0, _utils.def)(item, 'html', {\n configurable: true,\n get () {\n return $html.innerHTML;\n },\n set (value) {\n $html.innerHTML = '';\n (0, _utils.append)($html, value);\n }\n });\n const $tooltip = (0, _utils.createElement)('div');\n (0, _utils.addClass)($tooltip, 'art-setting-item-right-tooltip');\n (0, _utils.append)($tooltip, item.tooltip || '');\n (0, _utils.append)($right, $tooltip);\n (0, _utils.def)(item, '$tooltip', {\n configurable: true,\n get: ()=>$tooltip\n });\n (0, _utils.def)(item, 'tooltip', {\n configurable: true,\n get () {\n return $tooltip.innerHTML;\n },\n set (value) {\n $tooltip.innerHTML = '';\n (0, _utils.append)($tooltip, value);\n }\n });\n switch(type){\n case 'switch':\n {\n const $switch = (0, _utils.createElement)('div');\n (0, _utils.addClass)($switch, 'art-setting-item-right-icon');\n const $switchOn = (0, _utils.append)($switch, icons.switchOn);\n const $switchOff = (0, _utils.append)($switch, icons.switchOff);\n (0, _utils.setStyle)(item.switch ? $switchOff : $switchOn, 'display', 'none');\n (0, _utils.append)($right, $switch);\n (0, _utils.def)(item, '$switch', {\n configurable: true,\n get: ()=>$switch\n });\n let $switchValue = item.switch;\n (0, _utils.def)(item, 'switch', {\n configurable: true,\n get: ()=>$switchValue,\n set (value) {\n $switchValue = value;\n if (value) {\n (0, _utils.setStyle)($switchOff, 'display', 'none');\n (0, _utils.setStyle)($switchOn, 'display', null);\n } else {\n (0, _utils.setStyle)($switchOff, 'display', null);\n (0, _utils.setStyle)($switchOn, 'display', 'none');\n }\n }\n });\n break;\n }\n case 'range':\n {\n const $state = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n const $range = (0, _utils.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 (0, _utils.addClass)($range, 'art-setting-range');\n (0, _utils.append)($right, $state);\n (0, _utils.def)(item, '$range', {\n configurable: true,\n get: ()=>$range\n });\n let $rangeValue = [\n ...item.range\n ];\n (0, _utils.def)(item, 'range', {\n configurable: true,\n get: ()=>$rangeValue,\n set (value) {\n $rangeValue = [\n ...value\n ];\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 = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n (0, _utils.append)($state, icons.arrowRight);\n (0, _utils.append)($right, $state);\n }\n break;\n default:\n break;\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 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 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 case 'selector':\n {\n const event = proxy($item, 'click', async (event)=>{\n if (item.selector?.length) this.render(item.selector);\n else {\n this.check(item);\n if (item.$parent.onSelect) item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n });\n item.$events.push(event);\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n }\n break;\n case 'button':\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 break;\n default:\n break;\n }\n (0, _utils.def)(item, '$item', {\n configurable: true,\n get: ()=>$item\n });\n if (isUpdate) (0, _utils.replaceElement)($item, oldItem);\n else (0, _utils.append)($panel, $item);\n if (item.mounted) setTimeout(()=>item.mounted.call(this.art, item.$item, item), 0);\n }\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n (0, _utils.inverseClass)($panel, 'art-current');\n } else {\n const $panel = (0, _utils.createElement)('div');\n this.cache.set(option, $panel);\n (0, _utils.addClass)($panel, 'art-setting-panel');\n (0, _utils.append)(this.$parent, $panel);\n (0, _utils.inverseClass)($panel, 'art-current');\n if (option[0]?.$parent) this.createHeader(option[0]);\n for(let index = 0; index < option.length; index++)this.createItem(option[index]);\n }\n this.resize();\n }\n}\nexports.default = Setting;\n\n},{\"./flip\":\"8Xlqq\",\"./aspectRatio\":\"g0rEm\",\"./playbackRate\":\"p1PC0\",\"./subtitleOffset\":\"3ybiM\",\"../utils/component\":\"euCTd\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8Xlqq\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, FLIP } } = art;\n function getI18n(value) {\n return i18n.get((0, _utils.capitalize)(value));\n }\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"g0rEm\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nfunction aspectRatio(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO } } = art;\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"p1PC0\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nfunction playbackRate(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE } } = art;\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3ybiM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffset);\nfunction subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\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: [\n 0,\n -10,\n 10,\n 0.1\n ],\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ly2Yz\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Storage {\n constructor(){\n this.name = 'artplayer_settings';\n this.settings = {};\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 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 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 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}\nexports.default = Storage;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"enDIw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _miniProgressBar = require(\"./miniProgressBar\");\nvar _miniProgressBarDefault = parcelHelpers.interopDefault(_miniProgressBar);\nvar _autoOrientation = require(\"./autoOrientation\");\nvar _autoOrientationDefault = parcelHelpers.interopDefault(_autoOrientation);\nvar _autoPlayback = require(\"./autoPlayback\");\nvar _autoPlaybackDefault = parcelHelpers.interopDefault(_autoPlayback);\nvar _fastForward = require(\"./fastForward\");\nvar _fastForwardDefault = parcelHelpers.interopDefault(_fastForward);\nvar _lock = require(\"./lock\");\nvar _lockDefault = parcelHelpers.interopDefault(_lock);\nclass Plugins {\n constructor(art){\n this.art = art;\n this.id = 0;\n const { option } = art;\n if (option.miniProgressBar && !option.isLive) this.add((0, _miniProgressBarDefault.default));\n if (option.lock && (0, _utils.isMobile)) this.add((0, _lockDefault.default));\n if (option.autoPlayback && !option.isLive) this.add((0, _autoPlaybackDefault.default));\n if (option.autoOrientation && (0, _utils.isMobile)) this.add((0, _autoOrientationDefault.default));\n if (option.fastForward && (0, _utils.isMobile) && !option.isLive) this.add((0, _fastForwardDefault.default));\n for(let index = 0; index < option.plugins.length; index++)this.add(option.plugins[index]);\n }\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n if (result instanceof Promise) return result.then((res)=>this.next(plugin, res));\n else return this.next(plugin, result);\n }\n next(plugin, result) {\n const pluginName = result && result.name || plugin.name || `plugin${this.id}`;\n (0, _utils.errorHandle)(!(0, _utils.has)(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n (0, _utils.def)(this, pluginName, {\n value: result\n });\n return this;\n }\n}\nexports.default = Plugins;\n\n},{\"../utils\":\"2zmtQ\",\"./miniProgressBar\":\"dtvsV\",\"./autoOrientation\":\"aMOBX\",\"./autoPlayback\":\"kqk6e\",\"./fastForward\":\"Rwbar\",\"./lock\":\"cmd59\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dtvsV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniProgressBar);\nvar _utils = require(\"../utils\");\nfunction miniProgressBar(art) {\n art.on('control', (state)=>{\n if (state) (0, _utils.removeClass)(art.template.$player, 'art-mini-progress-bar');\n else (0, _utils.addClass)(art.template.$player, 'art-mini-progress-bar');\n });\n return {\n name: 'mini-progress-bar'\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aMOBX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoOrientation);\nvar _utils = require(\"../utils\");\nfunction autoOrientation(art) {\n const { constructor, template: { $player, $video } } = art;\n art.on('fullscreenWeb', (state)=>{\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(()=>{\n (0, _utils.setStyle)($player, 'width', `${viewHeight}px`);\n (0, _utils.setStyle)($player, 'height', `${viewWidth}px`);\n (0, _utils.setStyle)($player, 'transform-origin', '0 0');\n (0, _utils.setStyle)($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n (0, _utils.addClass)($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation')) {\n (0, _utils.removeClass)($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n });\n art.on('fullscreen', async (state)=>{\n if (!screen?.orientation?.lock) return;\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n (0, _utils.addClass)($player, 'art-auto-orientation-fullscreen');\n }\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n (0, _utils.removeClass)($player, 'art-auto-orientation-fullscreen');\n }\n });\n return {\n name: 'autoOrientation',\n get state () {\n return (0, _utils.hasClass)($player, 'art-auto-orientation');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kqk6e\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoPlayback);\nvar _utils = require(\"../utils\");\nfunction autoPlayback(art) {\n const { i18n, icons, storage, constructor, proxy, template: { $poster } } = art;\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `\n });\n const $last = (0, _utils.query)('.art-auto-playback-last', $autoPlayback);\n const $jump = (0, _utils.query)('.art-auto-playback-jump', $autoPlayback);\n const $close = (0, _utils.query)('.art-auto-playback-close', $autoPlayback);\n (0, _utils.append)($close, icons.close);\n let timer = null;\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) delete times[keys[0]];\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n clearTimeout(timer);\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n (0, _utils.setStyle)($autoPlayback, 'display', 'flex');\n $last.innerText = `${i18n.get('Last Seen')} ${(0, _utils.secondToTime)(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n proxy($close, 'click', ()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n proxy($jump, 'click', ()=>{\n art.seek = currentTime;\n art.play();\n (0, _utils.setStyle)($poster, 'display', 'none');\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n art.once('video:timeupdate', ()=>{\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n art.on('ready', init);\n art.on('restart', init);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"Rwbar\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fastForward);\nvar _utils = require(\"../utils\");\nfunction fastForward(art) {\n const { constructor, proxy, template: { $player, $video } } = art;\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n const onStart = (event)=>{\n if (event.touches.length === 1 && art.playing && !art.isLock) timer = setTimeout(()=>{\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n (0, _utils.addClass)($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n };\n const onStop = ()=>{\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n (0, _utils.removeClass)($player, 'art-fast-forward');\n }\n };\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n return {\n name: 'fastForward',\n get state () {\n return (0, _utils.hasClass)($player, 'art-fast-forward');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cmd59\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>lock);\nvar _utils = require(\"../utils\");\nfunction lock(art) {\n const { layers, icons, template: { $player } } = art;\n function getState() {\n return (0, _utils.hasClass)($player, 'art-lock');\n }\n function setLock() {\n (0, _utils.addClass)($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n function setUnlock() {\n (0, _utils.removeClass)($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\n layers.add({\n name: 'lock',\n mounted ($el) {\n const $lock = (0, _utils.append)($el, icons.lock);\n const $unlock = (0, _utils.append)($el, icons.unlock);\n (0, _utils.setStyle)($lock, 'display', 'none');\n art.on('lock', (state)=>{\n if (state) {\n (0, _utils.setStyle)($lock, 'display', 'inline-flex');\n (0, _utils.setStyle)($unlock, 'display', 'none');\n } else {\n (0, _utils.setStyle)($lock, 'display', 'none');\n (0, _utils.setStyle)($unlock, 'display', 'inline-flex');\n }\n });\n },\n click () {\n if (getState()) setUnlock();\n else setLock();\n }\n });\n return {\n name: 'lock',\n get state () {\n return getState();\n },\n set state (value){\n if (value) setLock();\n else setUnlock();\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}]},[\"4omrA\"], \"4omrA\", \"parcelRequireb749\", {})\nlet {default: _default, } = parcelRequireb749(\"4omrA\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import { version } from '../package.json';\nimport 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 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 version;\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","{\n \"license\": \"MIT\",\n \"name\": \"artplayer\",\n \"version\": \"5.2.4\",\n \"main\": \"dist/artplayer.js\",\n \"legacy\": \"dist/artplayer.legacy.js\",\n \"module\": \"dist/artplayer.esm.js\",\n \"types\": \"types/artplayer.d.ts\",\n \"exports\": {\n \"import\": \"./dist/artplayer.esm.js\",\n \"require\": \"./dist/artplayer.js\",\n \"default\": \"./dist/artplayer.js\"\n },\n \"homepage\": \"https://artplayer.org\",\n \"author\": \"Harvey Zack \",\n \"browserslist\": \"last 1 Chrome version\",\n \"description\": \"ArtPlayer.js is a modern and full featured HTML5 video player\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/zhw2590582/ArtPlayer.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/zhw2590582/ArtPlayer/issues\"\n },\n \"keywords\": [\n \"html5\",\n \"video\",\n \"player\"\n ],\n \"dependencies\": {\n \"option-validator\": \"^2.0.6\"\n }\n}","module.exports = \"3f6ec9ee3af91a27\";","!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 { version } from '../package.json';\nimport { 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
${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 (typeof top === 'number' && typeof left === 'number') {\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","import { version } from '../../package.json';\n\nexport default function (option) {\n return {\n ...option,\n html: `ArtPlayer ${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 = \"79356f8a9eaedcd3\";","module.exports = \"9b8da831195a0296\";","module.exports = \"fefbfac2b4688a15\";","module.exports = \"1c2f0d275a3e6c14\";","module.exports = \"0f0db61f72c3e5d7\";","module.exports = \"8bc480c9256a1b55\";","module.exports = \"02a59ee0095ec3a9\";","module.exports = \"933bfb2aaa61ebcc\";","module.exports = \"d8947f3fc30104b7\";","module.exports = \"6f55837680f4a829\";","module.exports = \"9d31a30750a7cb4b\";","module.exports = \"0000856937620744\";","module.exports = \"ff1d4e50282a344a\";","module.exports = \"9813d2a46ceed07c\";","module.exports = \"b57bb39e41ccb640\";","module.exports = \"7fb917337b416149\";","module.exports = \"b2dac719b3f940e4\";","module.exports = \"789dab71a67d9e3d\";","module.exports = \"50bc39a19ece62a6\";","module.exports = \"4cd5fe480df753c8\";","module.exports = \"5e79755fabb04f07\";","module.exports = \"20b111129b61a679\";","module.exports = \"e24e6a114fe8d011\";","module.exports = \"cdfad49422dff32c\";","module.exports = \"269ca28002b4a2e4\";","module.exports = \"bffe06d8410d947f\";","module.exports = \"a85d72ae7ad1ec63\";","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}] already exists 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":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","_packageJson","_indexLess","_indexLessDefault","interopDefault","_optionValidator","_optionValidatorDefault","_emitter","_emitterDefault","_utils","_scheme","_schemeDefault","_config","_configDefault","_template","_templateDefault","_i18N","_i18NDefault","_player","_playerDefault","_control","_controlDefault","_contextmenu","_contextmenuDefault","_info","_infoDefault","_subtitle","_subtitleDefault","_events","_eventsDefault","_hotkey","_hotkeyDefault","_layer","_layerDefault","_loading","_loadingDefault","_notice","_noticeDefault","_mask","_maskDefault","_icons","_iconsDefault","_setting","_settingDefault","_storage","_storageDefault","_plugins","_pluginsDefault","instances","Artplayer","default","constructor","option","readyCallback","mergeOption","mergeDeep","container","isLock","isReady","isFocus","isInput","isRotate","isDestroy","template","events","storage","icons","i18n","notice","player","layers","controls","contextmenu","subtitle","info","loading","hotkey","mask","setting","plugins","on","DEBUG","log","msg","console","version","index","event","type","push","config","utils","scheme","Emitter","validator","kindOf","html","url","poster","theme","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","playbackRate","aspectRatio","screenshot","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","useSSR","playsInline","lock","gesture","fastForward","autoPlayback","autoOrientation","airplay","proxy","undefined","settings","quality","highlight","thumbnails","number","column","width","height","scale","style","escape","encoding","onVttLoad","vtt","moreVideoAttr","preload","isSafari","cssVar","customType","lang","navigator","language","toLowerCase","query","video","$video","destroy","removeHtml","splice","indexOf","emit","STYLE","CONTEXTMENU","NOTICE_TIME","SETTING_WIDTH","SETTING_ITEM_WIDTH","SETTING_ITEM_HEIGHT","RESIZE_TIME","SCROLL_TIME","SCROLL_GAP","AUTO_PLAYBACK_MAX","AUTO_PLAYBACK_MIN","AUTO_PLAYBACK_TIMEOUT","RECONNECT_TIME_MAX","RECONNECT_SLEEP_TIME","CONTROL_HIDE_TIME","DBCLICK_TIME","DBCLICK_FULLSCREEN","MOBILE_DBCLICK_PLAY","MOBILE_CLICK_PLAY","AUTO_ORIENTATION_TIME","INFO_LOOP_TIME","FAST_FORWARD_VALUE","FAST_FORWARD_TIME","TOUCH_MOVE_RATIO","VOLUME_STEP","SEEK_STEP","PLAYBACK_RATE","ASPECT_RATIO","FLIP","FULLSCREEN_WEB_IN_BODY","LOG_VERSION","USE_RAF","isBrowser","setStyleText","setTimeout","JSON","parse","t","e","r","Symbol","iterator","prototype","n","toString","c","o","Array","isArray","isBuffer","callee","message","Date","toDateString","getDate","setDate","stackTraceLimit","RegExp","flags","ignoreCase","multiline","throw","return","next","slice","replace","f","arguments","s","y","a","u","concat","join","keys","forEach","split","map","trim","filter","Boolean","some","fn","ctx","once","listener","args","off","apply","_","data","evtArr","callback","evts","liveEvents","len","__esModule","value","exportAll","source","dest","key","hasOwnProperty","enumerable","export","destName","_dom","_error","_file","_property","_time","_format","_compatibility","queryAll","addClass","removeClass","hasClass","append","remove","setStyle","setStyles","getStyle","siblings","inverseClass","tooltip","isInViewport","includeFromEvent","replaceElement","createElement","getIcon","supportsFlex","getRect","loadImg","selector","document","querySelector","from","querySelectorAll","target","className","classList","add","contains","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","element","styles","numberType","getComputedStyle","getPropertyValue","parseFloat","parentElement","children","item","pos","isMobile","setAttribute","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","horInView","left","composedPath","newChild","oldChild","replaceChild","tag","icon","$style","getElementById","readyState","addEventListener","head","textContent","div","display","Promise","reject","img","Image","onload","canvas","getContext","drawImage","toBlob","blob","blobUrl","URL","createObjectURL","scaledImg","onerror","revokeObjectURL","src","userAgent","isWechat","isIE","isAndroid","isIOS","isIOS13","CUSTOM_USER_AGENT","test","MSStream","includes","maxTouchPoints","ArtPlayerError","errorHandle","context","captureStackTrace","condition","srtToVtt","srtText","fixSrt","srt","$1","$2","ms","vttToBlob","vttText","Blob","assToVtt","ass","reAss","fixTime","time","arr","line","m","match","start","end","text","download","elink","href","body","click","getExt","pop","def","has","objects","isObject","reduce","prev","obj","pVal","oVal","getOwnPropertyDescriptor","sleep","debounce","func","duration","timeout","clearTimeout","throttle","shouldWait","clamp","num","b","Math","max","min","capitalize","str","charAt","toUpperCase","secondToTime","second","hour","floor","sec","unescape","reg","ComponentOption","validElement","paths","disable","mounted","onSelect","switch","onSwitch","range","onRange","onChange","position","properties","methods","prototypes","Template","art","$container","tagName","every","ins","dataset","artId","init","innerHTML","$player","$track","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsCenter","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$info","$infoPanel","$infoClose","$contextmenu","HTMLVideoElement","HTMLCanvasElement","_zhCn","_zhCnDefault","languages","update","zhCn","Close","Volume","Play","Pause","Rate","Mute","Horizontal","Vertical","Reconnect","Screenshot","Default","Normal","Open","Fullscreen","AirPlay","_urlMix","_urlMixDefault","_attrMix","_attrMixDefault","_playMix","_playMixDefault","_pauseMix","_pauseMixDefault","_toggleMix","_toggleMixDefault","_seekMix","_seekMixDefault","_volumeMix","_volumeMixDefault","_currentTimeMix","_currentTimeMixDefault","_durationMix","_durationMixDefault","_switchMix","_switchMixDefault","_playbackRateMix","_playbackRateMixDefault","_aspectRatioMix","_aspectRatioMixDefault","_screenshotMix","_screenshotMixDefault","_fullscreenMix","_fullscreenMixDefault","_fullscreenWebMix","_fullscreenWebMixDefault","_pipMix","_pipMixDefault","_loadedMix","_loadedMixDefault","_playedMix","_playedMixDefault","_playingMix","_playingMixDefault","_autoSizeMix","_autoSizeMixDefault","_rectMix","_rectMixDefault","_flipMix","_flipMixDefault","_miniMix","_miniMixDefault","_posterMix","_posterMixDefault","_autoHeightMix","_autoHeightMixDefault","_cssVarMix","_cssVarMixDefault","_themeMix","_themeMixDefault","_typeMix","_typeMixDefault","_stateMix","_stateMixDefault","_subtitleOffsetMix","_subtitleOffsetMixDefault","_airplayMix","_airplayMixDefault","_qualityMix","_qualityMixDefault","_thumbnailsMix","_thumbnailsMixDefault","_optionInit","_optionInitDefault","_eventInit","_eventInitDefault","urlMix","set","newUrl","oldUrl","typeName","typeCallback","show","attrMix","playMix","result","play","instance","pause","pauseMix","toggleMix","playing","seekMix","currentTime","seek","volumeMix","percentage","parseInt","currentTimeMix","Number","isNaN","durationMix","Infinity","switchMix","switchUrl","playbackRateMix","rate","aspectRatioMix","ratio","ratioArray","setupRatio","playerRatio","screenshotMix","$canvas","videoWidth","videoHeight","toDataURL","dataUri","getDataURL","fileName","fullscreenMix","_screenfull","_screenfullDefault","nativeScreenfull","isFullscreen","state","request","exit","webkitScreenfull","fullscreenElement","webkitEnterFullscreen","webkitExitFullscreen","isEnabled","webkitSupportsFullscreen","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","options","onFullScreenEntered","returnPromise","requestFullscreen","then","catch","onFullScreenExit","exitFullscreen","toggle","onchange","eventName","removeEventListener","raw","defineProperties","fullscreenEnabled","fullscreenWebMix","cssText","pipMix","pictureInPictureEnabled","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitSupportsPresentationMode","webkitPip","webkitSetPresentationMode","webkitPresentationMode","loadedMix","loadedTime","buffered","playedMix","playingMix","paused","ended","autoSizeMix","videoRatio","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","miniMix","isDragging","lastPageX","lastPageY","hideMini","$mini","prepend","initState","$play","$pause","initMini","createMini","$close","close","button","pageX","pageY","posterMix","autoHeightMix","cssVarMix","setProperty","themeMix","typeMix","stateMix","states","find","prop","subtitleOffsetMix","cues","cue","originalStartTime","startTime","originalEndTime","endTime","airplayMix","available","WebKitPlaybackTargetAvailabilityEvent","webkitShowPlaybackTargetPicker","availability","qualityMix","qualityDefault","marginRight","switchQuality","thumbnailsMix","timer","image","isLoad","isHover","hover","$thumbnails","isMobileDragging","showThumbnails","posWidth","width2","naturalWidth","height2","perIndex","yIndex","ceil","xIndex","optionInit","attr","volumeStorage","eventInit","reconnectTime","_component","_componentDefault","_fullscreen","_fullscreenDefault","_fullscreenWeb","_fullscreenWebDefault","_pip","_pipDefault","_playAndPause","_playAndPauseDefault","_progress","_progressDefault","_timeDefault","_volume","_volumeDefault","_screenshot","_screenshotDefault","_airplay","_airplayDefault","Control","now","getOption","$parent","check","$control_value","$control_option","$control_item","$ref","$value","innerText","$list","$item","path","Map","childs","nextChild","insertAdjacentElement","destroyEvent","preventDefault","beforeUnmount","delete","assign","$control","$fullscreenOn","fullscreenOn","$fullscreenOff","fullscreenOff","$fullscreenWebOn","fullscreenWebOn","$fullscreenWebOff","fullscreenWebOff","playAndPause","showPlay","showPause","getPosFromEvent","setCurrentTime","progress","eventLeft","touches","clientX","clientY","tipTimer","$hover","$loaded","$played","$highlight","$indicator","$tip","showTime","touch","tipWidth","indicator","played","loaded","showHighlight","fontSize","padding","cursor","getTime","newTime","$volume","volumeClose","$panel","$inner","$slider","$handle","getVolumeFromEvent","resize","_playbackRate","_playbackRateDefault","_aspectRatio","_aspectRatioDefault","_flip","_flipDefault","_version","_versionDefault","_close","_closeDefault","Contextmenu","mouseX","mouseY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","toFixed","$default","$current","Info","$types","Subtitle","lastState","webkitDisplayingFullscreen","createTrack","textTrack","textTracks","activeCues","newOption","subtitleOption","subUrl","kind","$newTrack","label","track","mode","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","vttNew","_clickInit","_clickInitDefault","_hoverInit","_hoverInitDefault","_moveInit","_moveInitDefault","_resizeInit","_resizeInitDefault","_gestureInit","_gestureInitDefault","_viewInit","_viewInitDefault","_documentInit","_documentInitDefault","_updateInit","_updateInitDefault","_restoreInit","_restoreInitDefault","destroyEvents","mouseenter","mouseleave","clickInit","clickTimes","clicks","hoverInit","moveInit","resizeInit","resizeFn","screen","orientation","gestureInit","touchTarget","startX","startY","onTouchStart","onTouchMove","direction","GetSlideDirection","endX","endY","dy","dx","abs","angle","atan2","PI","isHorizontal","isVertical","ratioX","ratioY","viewInit","scrollFn","mini","documentInit","updateInit","requestAnimationFrame","cancelAnimationFrame","restoreInit","backward","forward","activeElement","editable","getAttribute","altKey","ctrlKey","metaKey","shiftKey","Layer","Loading","Mask","$error","_loadingSvg","_loadingSvgDefault","_stateSvg","_stateSvgDefault","_checkSvg","_checkSvgDefault","_playSvg","_playSvgDefault","_pauseSvg","_pauseSvgDefault","_volumeSvg","_volumeSvgDefault","_volumeCloseSvg","_volumeCloseSvgDefault","_screenshotSvg","_screenshotSvgDefault","_settingSvg","_settingSvgDefault","_arrowLeftSvg","_arrowLeftSvgDefault","_arrowRightSvg","_arrowRightSvgDefault","_playbackRateSvg","_playbackRateSvgDefault","_aspectRatioSvg","_aspectRatioSvgDefault","_configSvg","_configSvgDefault","_pipSvg","_pipSvgDefault","_lockSvg","_lockSvgDefault","_unlockSvg","_unlockSvgDefault","_fullscreenOffSvg","_fullscreenOffSvgDefault","_fullscreenOnSvg","_fullscreenOnSvgDefault","_fullscreenWebOffSvg","_fullscreenWebOffSvgDefault","_fullscreenWebOnSvg","_fullscreenWebOnSvgDefault","_switchOnSvg","_switchOnSvgDefault","_switchOffSvg","_switchOffSvgDefault","_flipSvg","_flipSvgDefault","_errorSvg","_errorSvgDefault","_closeSvg","_closeSvgDefault","_airplaySvg","_airplaySvgDefault","arrowLeft","arrowRight","unlock","switchOn","switchOff","_subtitleOffset","_subtitleOffsetDefault","Setting","active","builtin","format","render","isControl","isSetting","traverse","$option","$parents","parents","names","$formatted","$events","settingWidth","controlLeft","controlWidth","playerLeft","playerWidth","settingLeft","settingHeight","inactivate","createItem","createHeader","$left","$icon","isUpdate","oldItem","$right","configurable","$html","$tooltip","$switch","$switchOn","$switchOff","$switchValue","$range","step","$rangeValue","valueAsNumber","onClick","getI18n","localStorage","getItem","setItem","stringify","del","clear","removeItem","_miniProgressBar","_miniProgressBarDefault","_autoOrientation","_autoOrientationDefault","_autoPlayback","_autoPlaybackDefault","_fastForward","_fastForwardDefault","_lock","_lockDefault","plugin","pluginName","viewWidth","viewHeight","lastOrientation","oppositeOrientation","startsWith","$autoPlayback","$last","$jump","times","isPress","lastPlaybackRate","onStop","getState","setLock","setUnlock","$el","$lock","$unlock","_default","parcelRequireb749"],"version":3,"file":"index.js.map"} \ No newline at end of file +{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAA,IAAA,EAAA,EAAA,mBACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,WACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,W,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,W,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GAEA,IAAI,EAAK,EACH,EAAY,EAAE,AACL,OAAM,UAAkB,EAAA,OAAO,CAC1C,YAAY,CAAM,CAAE,CAAa,CAAE,CAC/B,KAAK,GAEL,IAAI,CAAC,EAAE,CAAG,EAAE,EAEZ,IAAM,EAAc,EAAM,SAAS,CAAC,EAAU,MAAM,CAAE,GAkCtD,GAjCA,EAAY,SAAS,CAAG,EAAO,SAAS,CAExC,IAAI,CAAC,MAAM,CAAG,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,EAAa,EAAA,OAAM,EAE3C,IAAI,CAAC,MAAM,CAAG,CAAA,EACd,IAAI,CAAC,OAAO,CAAG,CAAA,EACf,IAAI,CAAC,OAAO,CAAG,CAAA,EACf,IAAI,CAAC,OAAO,CAAG,CAAA,EACf,IAAI,CAAC,QAAQ,CAAG,CAAA,EAChB,IAAI,CAAC,SAAS,CAAG,CAAA,EAEjB,IAAI,CAAC,QAAQ,CAAG,GAAI,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,IAAI,EACjC,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,IAAI,EAC7B,IAAI,CAAC,OAAO,CAAG,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,IAAI,EAC/B,IAAI,CAAC,KAAK,CAAG,GAAI,CAAA,EAAA,EAAA,OAAI,AAAJ,EAAM,IAAI,EAC3B,IAAI,CAAC,IAAI,CAAG,GAAI,CAAA,EAAA,EAAA,OAAG,AAAH,EAAK,IAAI,EACzB,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,IAAI,EAC7B,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,IAAI,EAC7B,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAI,AAAJ,EAAM,IAAI,EAC5B,IAAI,CAAC,QAAQ,CAAG,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,IAAI,EAChC,IAAI,CAAC,WAAW,CAAG,GAAI,CAAA,EAAA,EAAA,OAAU,AAAV,EAAY,IAAI,EACvC,IAAI,CAAC,QAAQ,CAAG,GAAI,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,IAAI,EACjC,IAAI,CAAC,IAAI,CAAG,GAAI,CAAA,EAAA,EAAA,OAAG,AAAH,EAAK,IAAI,EACzB,IAAI,CAAC,OAAO,CAAG,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,IAAI,EAC/B,IAAI,CAAC,MAAM,CAAG,GAAI,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,IAAI,EAC7B,IAAI,CAAC,IAAI,CAAG,GAAI,CAAA,EAAA,EAAA,OAAG,AAAH,EAAK,IAAI,EACzB,IAAI,CAAC,OAAO,CAAG,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,IAAI,EAC/B,IAAI,CAAC,OAAO,CAAG,GAAI,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,IAAI,EAE3B,AAAyB,YAAzB,OAAO,GACP,IAAI,CAAC,EAAE,CAAC,QAAS,IAAM,EAAc,IAAI,CAAC,IAAI,CAAE,IAAI,GAGpD,EAAU,KAAK,CAAE,CACjB,IAAM,EAAM,AAAC,GAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAA,CAAK,EAC7D,EAAI,WAAa,EAAU,OAAO,EAClC,IAAK,IAAI,EAAQ,EAAG,EAAQ,AAAA,EAAA,OAAK,CAAE,MAAM,CAAC,MAAM,CAAE,IAC9C,IAAI,CAAC,EAAE,CAAC,SAAW,AAAA,EAAA,OAAM,CAAC,MAAM,CAAC,EAAM,CAAE,AAAC,GAAU,EAAI,SAAW,EAAM,IAAI,EAErF,CAEA,EAAU,IAAI,CAAC,IAAI,CACvB,CAEA,WAAW,WAAY,CACnB,OAAO,CACX,CAEA,WAAW,SAAU,CACjB,OAAO,EAAA,OAAO,AAClB,CAEA,WAAW,QAAS,CAChB,OAAO,EAAA,OAAM,AACjB,CAEA,WAAW,OAAQ,CACf,OAAO,CACX,CAEA,WAAW,QAAS,CAChB,OAAO,EAAA,OAAM,AACjB,CAEA,WAAW,SAAU,CACjB,OAAO,EAAA,OAAO,AAClB,CAEA,WAAW,WAAY,CACnB,OAAO,EAAA,OAAS,AACpB,CAEA,WAAW,QAAS,CAChB,OAAO,AAAA,EAAA,OAAS,CAAC,MAAM,AAC3B,CAEA,WAAW,MAAO,CACd,OAAO,AAAA,EAAA,OAAQ,CAAC,IAAI,AACxB,CAEA,WAAW,QAAS,CAChB,MAAO,CACH,GAAI,GACJ,UAAW,aACX,IAAK,GACL,OAAQ,GACR,KAAM,GACN,MAAO,OACP,OAAQ,GACR,OAAQ,CAAA,EACR,MAAO,CAAA,EACP,SAAU,CAAA,EACV,SAAU,CAAA,EACV,SAAU,CAAA,EACV,KAAM,CAAA,EACN,KAAM,CAAA,EACN,aAAc,CAAA,EACd,YAAa,CAAA,EACb,WAAY,CAAA,EACZ,QAAS,CAAA,EACT,OAAQ,CAAA,EACR,IAAK,CAAA,EACL,MAAO,CAAA,EACP,SAAU,CAAA,EACV,WAAY,CAAA,EACZ,cAAe,CAAA,EACf,eAAgB,CAAA,EAChB,gBAAiB,CAAA,EACjB,OAAQ,CAAA,EACR,YAAa,CAAA,EACb,KAAM,CAAA,EACN,QAAS,CAAA,EACT,YAAa,CAAA,EACb,aAAc,CAAA,EACd,gBAAiB,CAAA,EACjB,QAAS,CAAA,EACT,MAAO,KAAA,EACP,OAAQ,EAAE,CACV,YAAa,EAAE,CACf,SAAU,EAAE,CACZ,SAAU,EAAE,CACZ,QAAS,EAAE,CACX,UAAW,EAAE,CACb,QAAS,EAAE,CACX,WAAY,CACR,IAAK,GACL,OAAQ,GACR,OAAQ,GACR,MAAO,EACP,OAAQ,EACR,MAAO,CACX,EACA,SAAU,CACN,IAAK,GACL,KAAM,GACN,MAAO,CAAC,EACR,KAAM,GACN,OAAQ,CAAA,EACR,SAAU,QACV,UAAW,AAAC,GAAQ,CACxB,EACA,cAAe,CACX,SAAU,CAAA,EACV,QAAS,EAAM,QAAQ,CAAG,OAAS,UACvC,EACA,KAAM,CAAC,EACP,MAAO,CAAC,EACR,OAAQ,CAAC,EACT,WAAY,CAAC,EACb,KAAM,WAAW,SAAS,aAC9B,CACJ,CAEA,IAAI,OAAQ,CACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,AAC5B,CAEA,IAAI,OAAQ,CACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,AAC9B,CAEA,IAAI,OAAQ,CACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,AAC/B,CAEA,QAAQ,EAAa,CAAA,CAAI,CAAE,CACvB,IAAI,CAAC,MAAM,CAAC,OAAO,GACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GACtB,EAAU,MAAM,CAAC,EAAU,OAAO,CAAC,IAAI,EAAG,GAC1C,IAAI,CAAC,SAAS,CAAG,CAAA,EACjB,IAAI,CAAC,IAAI,CAAC,UACd,CACJ,CAnLqB,EAAA,OAAA,CAAA,EAqLrB,EAAU,KAAK,CAAG,EAAA,OAAK,CACvB,EAAU,KAAK,CAAG,CAAA,EAClB,EAAU,WAAW,CAAG,CAAA,EACxB,EAAU,WAAW,CAAG,IACxB,EAAU,aAAa,CAAG,IAC1B,EAAU,kBAAkB,CAAG,IAC/B,EAAU,mBAAmB,CAAG,GAChC,EAAU,WAAW,CAAG,IACxB,EAAU,WAAW,CAAG,IACxB,EAAU,UAAU,CAAG,GACvB,EAAU,iBAAiB,CAAG,GAC9B,EAAU,iBAAiB,CAAG,EAC9B,EAAU,qBAAqB,CAAG,IAClC,EAAU,kBAAkB,CAAG,EAC/B,EAAU,oBAAoB,CAAG,IACjC,EAAU,iBAAiB,CAAG,IAC9B,EAAU,YAAY,CAAG,IACzB,EAAU,kBAAkB,CAAG,CAAA,EAC/B,EAAU,mBAAmB,CAAG,CAAA,EAChC,EAAU,iBAAiB,CAAG,CAAA,EAC9B,EAAU,qBAAqB,CAAG,IAClC,EAAU,cAAc,CAAG,IAC3B,EAAU,kBAAkB,CAAG,EAC/B,EAAU,iBAAiB,CAAG,IAC9B,EAAU,gBAAgB,CAAG,GAC7B,EAAU,WAAW,CAAG,GACxB,EAAU,SAAS,CAAG,EACtB,EAAU,aAAa,CAAG,CAAC,GAAK,IAAM,EAAG,KAAM,IAAK,EAAE,CACtD,EAAU,YAAY,CAAG,CAAC,UAAW,MAAO,OAAO,CACnD,EAAU,IAAI,CAAG,CAAC,SAAU,aAAc,WAAW,CACrD,EAAU,sBAAsB,CAAG,CAAA,EACnC,EAAU,WAAW,CAAG,CAAA,EACxB,EAAU,OAAO,CAAG,CAAA,EAEhB,EAAM,SAAS,GACf,OAAO,SAAY,CAAG,EAEtB,EAAM,YAAY,CAAC,kBAAmB,EAAA,OAAK,EAE3C,WAAW,KACH,EAAU,WAAW,EACrB,QAAQ,GAAG,CACP,CAAC,gBAAgB,EAAE,EAAU,OAAO,CAAC,yBAAyB,CAAC,CAC/D,mCACA,mCACA,GAGZ,EAAG,K,E,C,kB,Q,iC,Q,mB,Q,kB,Q,U,Q,W,Q,W,Q,a,Q,S,Q,W,Q,Y,Q,gB,Q,S,Q,a,Q,W,Q,W,Q,U,Q,Y,Q,W,Q,S,Q,U,Q,Y,Q,Y,Q,Y,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,EChQP,EAAO,OAAO,CAAG,KAAK,KAAK,CAAC,wkB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECA5B,EAAO,OAAO,CAAG,+/4B,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAmD,EAAO,OAAO,CAAC,AAAgF,WAAwB,SAAS,EAAE,CAAC,EAAE,MAAM,AAAC,CAAA,EAAE,YAAY,OAAO,QAAQ,UAAU,OAAO,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,YAAY,OAAO,QAAQ,EAAE,WAAW,GAAG,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,OAAO,CAAC,CAAA,EAAG,EAAE,CAAC,IAAI,EAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,EAAE,MAAM,YAAY,GAAG,OAAO,EAAE,MAAM,OAAO,IAAI,EAAE,EAAE,GAAG,GAAG,YAAY,EAAE,MAAM,UAAU,GAAG,WAAW,EAAE,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,SAAS,GAAG,aAAa,EAAE,MAAO,AAAkB,sBAAsB,EAAM,GAAG,oBAAoB,WAAW,GAAsB,MAAM,OAAO,CAAC,MAAM,OAAO,CAAwB,GAApB,AAAoB,aAAP,MAAU,MAAM,QAAQ,GAAe,AAAG,AAAoG,EAAlG,WAAW,EAAE,YAAY,OAAO,AAAkE,EAAhE,WAAW,CAAC,QAAQ,EAAQ,AAAoC,EAAlC,WAAW,CAAC,QAAQ,CAAc,GAAG,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,UAAU,OAAO,EAAE,MAAM,EAAE,YAAY,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,YAAY,GAAsB,AAAkH,aAArG,MAAM,YAAY,OAAO,AAA4E,EAA1E,YAAY,EAAE,YAAY,OAAO,AAAyC,EAAvC,OAAO,EAAE,YAAY,OAAO,AAAW,EAAT,OAAO,CAAK,MAAM,OAAO,GAAsB,AAA+G,aAAlG,OAAO,UAAU,OAAO,AAA0E,EAAxE,OAAO,EAAE,AAA+D,EAA7D,WAAW,EAAE,UAAU,OAAO,AAA+B,EAA7B,WAAW,CAAC,eAAe,CAAK,MAAM,QAAQ,GAAsB,AAA0I,aAA7H,QAAQ,UAAU,OAAO,AAAoG,EAAlG,KAAK,EAAE,WAAW,OAAO,AAAyE,EAAvE,UAAU,EAAE,WAAW,OAAO,AAAyC,EAAvC,SAAS,EAAE,WAAW,OAAO,AAAU,EAAR,MAAM,CAAK,MAAM,SAAS,OAAO,EAAE,IAAI,IAAI,SAAS,MAAM,QAAS,KAAI,UAAU,MAAM,SAAU,KAAI,UAAU,MAAM,SAAU,KAAI,UAAU,MAAM,SAAU,KAAI,MAAM,MAAM,KAAM,KAAI,MAAM,MAAM,KAAM,KAAI,YAAY,MAAM,WAAY,KAAI,aAAa,MAAM,YAAa,KAAI,oBAAoB,MAAM,mBAAoB,KAAI,aAAa,MAAM,YAAa,KAAI,cAAc,MAAM,aAAc,KAAI,aAAa,MAAM,YAAa,KAAI,cAAc,MAAM,aAAc,KAAI,eAAe,MAAM,cAAe,KAAI,eAAe,MAAM,cAAc,CAAC,GAAqB,YAAY,OAAO,AAAiE,EAA/D,KAAK,EAAE,YAAY,OAAO,AAAqC,EAAnC,MAAM,EAAE,YAAY,OAAO,AAAQ,EAAN,IAAI,CAAK,MAAM,YAAY,OAAO,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,kBAAkB,MAAM,QAAS,KAAI,wBAAwB,MAAM,aAAc,KAAI,wBAAwB,MAAM,aAAc,KAAI,2BAA2B,MAAM,gBAAiB,KAAI,0BAA0B,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,MAAM,AAAI,MAAM,kBAAkB,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,sCAAsC,MAAM,CAAC,EAAE,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAG,CAAA,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,EAAE,MAAM,AAAI,MAAM,kBAAkB,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,qCAAqC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAG,CAAA,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,EAAG,CAAA,EAAE,EAAE,KAAK,CAAC,GAAG,YAAA,EAAc,CAAE,CAAA,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,KAAK,CAAA,EAAG,MAAM,AAAI,MAAM,kBAAkB,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,eAAe,MAAM,CAAC,EAAE,qBAAqB,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAG,MAAK,WAAW,EAAE,AAAI,MAAM,GAAG,UAAU,EAAE,EAAE,AAAI,MAAM,sCAAsC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,8CAA8C,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,G,E,C,E,C,M,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GCAv0H,EAAA,OAAA,CAAN,MACX,GAAG,CAAI,CAAE,CAAE,CAAE,CAAG,CAAE,CACd,IAAM,EAAI,IAAI,CAAC,CAAC,EAAK,CAAA,IAAI,CAAC,CAAC,CAAG,CAAC,CAAA,EAE/B,MADC,AAAA,CAAA,CAAC,CAAC,EAAK,EAAK,CAAA,CAAC,CAAC,EAAK,CAAG,EAAE,AAAF,CAAE,EAAG,IAAI,CAAC,CAAE,GAAA,EAAI,IAAA,CAAI,GACpC,IAAI,AACf,CAEA,KAAK,CAAI,CAAE,CAAE,CAAE,CAAG,CAAE,CAChB,IAAM,EAAO,IAAI,CACjB,SAAS,EAAS,GAAG,CAAI,EACrB,EAAK,GAAG,CAAC,EAAM,GACf,EAAG,KAAK,CAAC,EAAK,EAClB,CAEA,OADA,EAAS,CAAC,CAAG,EACN,IAAI,CAAC,EAAE,CAAC,EAAM,EAAU,EACnC,CAEA,KAAK,CAAI,CAAE,GAAG,CAAI,CAAE,CAChB,IAAM,EAAU,AAAC,CAAA,AAAA,CAAA,IAAI,CAAC,CAAC,EAAK,CAAA,IAAI,CAAC,CAAC,CAAG,CAAC,CAAA,CAAA,CAAG,CAAC,EAAK,EAAI,EAAC,AAAD,EAAI,KAAK,GAC5D,IAAK,IAAI,EAAI,EAAG,EAAI,EAAO,MAAM,CAAE,GAAK,EACpC,CAAM,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAM,CAAC,EAAE,CAAC,GAAG,CAAE,GAEtC,OAAO,IAAI,AACf,CAEA,IAAI,CAAI,CAAE,CAAQ,CAAE,CAChB,IAAM,EAAI,IAAI,CAAC,CAAC,EAAK,CAAA,IAAI,CAAC,CAAC,CAAG,CAAC,CAAA,EACzB,EAAO,CAAC,CAAC,EAAK,CACd,EAAa,EAAE,CACrB,GAAI,GAAQ,EACR,IAAK,IAAI,EAAI,EAAG,EAAM,EAAK,MAAM,CAAE,EAAI,EAAK,GAAK,EACzC,CAAI,CAAC,EAAE,CAAC,EAAE,GAAK,GAAY,CAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAK,GAAU,EAAW,IAAI,CAAC,CAAI,CAAC,EAAE,EAQzF,OALI,EAAW,MAAM,CACjB,CAAC,CAAC,EAAK,CAAG,EAEV,OAAO,CAAC,CAAC,EAAK,CAEX,IAAI,AACf,CACJ,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,ECzCA,EAAQ,cAAc,CAAG,SAAU,CAAC,EAClC,OAAO,GAAK,EAAE,UAAU,CAAG,EAAI,CAAC,QAAS,CAAC,CAC5C,EAEA,EAAQ,iBAAiB,CAAG,SAAU,CAAC,EACrC,OAAO,cAAc,CAAC,EAAG,aAAc,CAAC,MAAO,CAAA,CAAI,EACrD,EAEA,EAAQ,SAAS,CAAG,SAAU,CAAM,CAAE,CAAI,EAkBxC,OAjBA,OAAO,IAAI,CAAC,GAAQ,OAAO,CAAC,SAAU,CAAG,EAE7B,YAAR,GACA,AAAQ,eAAR,GACA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAM,IAK7C,OAAO,cAAc,CAAC,EAAM,EAAK,CAC/B,WAAY,CAAA,EACZ,IAAK,WACH,OAAO,CAAM,CAAC,EAAI,AACpB,CACF,EACF,GAEO,CACT,EAEA,EAAQ,MAAM,CAAG,SAAU,CAAI,CAAE,CAAQ,CAAE,CAAG,EAC5C,OAAO,cAAc,CAAC,EAAM,EAAU,CACpC,WAAY,CAAA,EACZ,IAAK,CACP,EACF,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClCA,IAAA,EAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,GACA,IAAA,EAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,E,E,C,Q,Q,U,Q,a,Q,S,Q,a,Q,S,Q,W,Q,kB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCLA,EAAA,MAAA,CAAA,EAAA,QAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,cAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,SAAA,IAAgB,GAShB,EAAA,MAAA,CAAA,EAAA,SAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAKhB,EAAA,MAAA,CAAA,EAAA,YAAA,IAAgB,GAOhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAKhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,eAAA,IAAgB,GAKhB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAgB,GAOhB,EAAA,MAAA,CAAA,EAAA,eAAA,IAAgB,GAShB,EAAA,MAAA,CAAA,EAAA,mBAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAgB,GAKhB,EAAA,MAAA,CAAA,EAAA,gBAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAgB,GAQhB,EAAA,MAAA,CAAA,EAAA,eAAA,IAAgB,GAgBhB,EAAA,MAAA,CAAA,EAAA,eAAA,IAAgB,GAMhB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAgB,GA5HhB,IAAA,EAAA,EAAA,mBAEO,SAAS,EAAM,CAAQ,CAAE,EAAS,QAAQ,EAC7C,OAAO,EAAO,aAAa,CAAC,EAChC,CAEO,SAAS,EAAS,CAAQ,CAAE,EAAS,QAAQ,EAChD,OAAO,MAAM,IAAI,CAAC,EAAO,gBAAgB,CAAC,GAC9C,CAEO,SAAS,EAAS,CAAM,CAAE,CAAS,EACtC,OAAO,EAAO,SAAS,CAAC,GAAG,CAAC,EAChC,CAEO,SAAS,EAAY,CAAM,CAAE,CAAS,EACzC,OAAO,EAAO,SAAS,CAAC,MAAM,CAAC,EACnC,CAEO,SAAS,EAAS,CAAM,CAAE,CAAS,EACtC,OAAO,EAAO,SAAS,CAAC,QAAQ,CAAC,EACrC,CAEO,SAAS,EAAO,CAAM,CAAE,CAAK,EAMhC,OALI,aAAiB,QACjB,EAAO,WAAW,CAAC,GAEnB,EAAO,kBAAkB,CAAC,YAAa,OAAO,IAE3C,EAAO,gBAAgB,EAAI,EAAO,SAAS,AACtD,CAEO,SAAS,EAAO,CAAK,EACxB,OAAO,EAAM,UAAU,CAAC,WAAW,CAAC,EACxC,CAEO,SAAS,EAAS,CAAO,CAAE,CAAG,CAAE,CAAK,EAExC,OADA,EAAQ,KAAK,CAAC,EAAI,CAAG,EACd,CACX,CAEO,SAAS,EAAU,CAAO,CAAE,CAAM,EACrC,IAAK,IAAM,KAAO,EACd,EAAS,EAAS,EAAK,CAAM,CAAC,EAAI,EAEtC,OAAO,CACX,CAEO,SAAS,EAAS,CAAO,CAAE,CAAG,CAAE,EAAa,CAAA,CAAI,EACpD,IAAM,EAAQ,OAAO,gBAAgB,CAAC,EAAS,MAAM,gBAAgB,CAAC,GACtE,OAAO,EAAa,WAAW,GAAS,CAC5C,CAEO,SAAS,EAAS,CAAM,EAC3B,OAAO,MAAM,IAAI,CAAC,EAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,AAAC,GAAS,IAAS,EAC/E,CAEO,SAAS,EAAa,CAAM,CAAE,CAAS,EAC1C,EAAS,GAAQ,OAAO,CAAC,AAAC,GAAS,EAAY,EAAM,IACrD,EAAS,EAAQ,EACrB,CAEO,SAAS,EAAQ,CAAM,CAAE,CAAG,CAAE,EAAM,KAAK,EACxC,EAAA,QAAQ,GACZ,EAAO,YAAY,CAAC,aAAc,GAClC,EAAS,EAAQ,iBACjB,EAAS,EAAQ,CAAC,MAAM,EAAE,EAAA,CAAK,EACnC,CAEO,SAAS,EAAa,CAAE,CAAE,EAAS,CAAC,EACvC,IAAM,EAAO,EAAG,qBAAqB,GAC/B,EAAe,OAAO,WAAW,EAAI,SAAS,eAAe,CAAC,YAAY,CAC1E,EAAc,OAAO,UAAU,EAAI,SAAS,eAAe,CAAC,WAAW,CACvE,EAAa,EAAK,GAAG,CAAG,GAAU,GAAgB,EAAK,GAAG,CAAG,EAAK,MAAM,CAAG,GAAU,EACrF,EAAY,EAAK,IAAI,CAAG,GAAU,EAAc,GAAU,EAAK,IAAI,CAAG,EAAK,KAAK,CAAG,GAAU,EACnG,OAAO,GAAc,CACzB,CAEO,SAAS,EAAiB,CAAK,CAAE,CAAM,EAC1C,OAAO,EAAM,YAAY,EAAI,EAAM,YAAY,GAAG,OAAO,CAAC,GAAU,EACxE,CAEO,SAAS,EAAe,CAAQ,CAAE,CAAQ,EAE7C,OADA,EAAS,UAAU,CAAC,YAAY,CAAC,EAAU,GACpC,CACX,CAEO,SAAS,EAAc,CAAG,EAC7B,OAAO,SAAS,aAAa,CAAC,EAClC,CAEO,SAAS,EAAQ,EAAM,EAAE,CAAE,EAAO,EAAE,EACvC,IAAM,EAAO,EAAc,KAI3B,OAHA,EAAS,EAAM,YACf,EAAS,EAAM,CAAC,SAAS,EAAE,EAAA,CAAK,EAChC,EAAO,EAAM,GACN,CACX,CAEO,SAAS,EAAa,CAAE,CAAE,CAAK,EAClC,IAAI,EAAS,SAAS,cAAc,CAAC,GAChC,IAED,AADA,CAAA,EAAS,SAAS,aAAa,CAAC,QAAhC,EACO,EAAE,CAAG,EACR,AAAwB,YAAxB,SAAS,UAAU,CACnB,SAAS,gBAAgB,CAAC,mBAAoB,KAC1C,SAAS,IAAI,CAAC,WAAW,CAAC,EAC9B,GAEC,AAAA,CAAA,SAAS,IAAI,EAAI,SAAS,eAAc,AAAd,EAAiB,WAAW,CAAC,IAGhE,EAAO,WAAW,CAAG,CACzB,CAEO,SAAS,IACZ,IAAM,EAAM,SAAS,aAAa,CAAC,OAEnC,OADA,EAAI,KAAK,CAAC,OAAO,CAAG,OACb,AAAsB,SAAtB,EAAI,KAAK,CAAC,OAAO,AAC5B,CAEO,SAAS,EAAQ,CAAE,EACtB,OAAO,EAAG,qBAAqB,EACnC,CAEO,SAAS,EAAQ,CAAG,CAAE,CAAK,EAC9B,OAAO,IAAI,QAAQ,CAAC,EAAS,KACzB,IAAM,EAAM,IAAI,KAEhB,CAAA,EAAI,MAAM,CAAG,WACT,GAAI,AAAC,GAAS,AAAU,IAAV,EAEP,CACH,IAAM,EAAS,SAAS,aAAa,CAAC,UAChC,EAAM,EAAO,UAAU,CAAC,KAC9B,CAAA,EAAO,KAAK,CAAG,EAAI,KAAK,CAAG,EAC3B,EAAO,MAAM,CAAG,EAAI,MAAM,CAAG,EAC7B,EAAI,SAAS,CAAC,EAAK,EAAG,EAAG,EAAO,KAAK,CAAE,EAAO,MAAM,EAEpD,EAAO,MAAM,CAAC,AAAC,IACX,IAAM,EAAU,IAAI,eAAe,CAAC,GAC9B,EAAY,IAAI,KAEtB,CAAA,EAAU,MAAM,CAAG,WACf,EAAQ,EACZ,EAEA,EAAU,OAAO,CAAG,WAChB,IAAI,eAAe,CAAC,GACpB,EAAO,AAAI,MAAM,CAAC,mBAAmB,EAAE,EAAA,CAAK,EAChD,EAEA,EAAU,GAAG,CAAG,CACpB,EACJ,MAvBI,EAAQ,EAwBhB,EAEA,EAAI,OAAO,CAAG,WACV,EAAO,AAAI,MAAM,CAAC,mBAAmB,EAAE,EAAA,CAAK,EAChD,EAEA,EAAI,GAAG,CAAG,CACd,EACJ,C,E,C,kB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClKa,EAAA,MAAA,CAAA,EAAA,YAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,OAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,YAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,QAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAA,GACA,EAAA,MAAA,CAAA,EAAA,YAAA,IAAA,GARN,IAAM,EAAY,YAAY,mBAAsB,CAAA,AAAqB,aAArB,OAAO,UAA4B,UAAU,SAAS,CAAG,EAAA,EACvG,EAAW,iCAAiC,IAAI,CAAC,GACjD,EAAW,kBAAkB,IAAI,CAAC,GAClC,EAAO,gBAAgB,IAAI,CAAC,GAC5B,EAAY,WAAW,IAAI,CAAC,GAC5B,EAAQ,oBAAoB,IAAI,CAAC,IAAc,CAAC,OAAO,QAAQ,CAC/D,EAAU,GAAU,EAAU,QAAQ,CAAC,cAAgB,UAAU,cAAc,EAAI,EACnF,EAAW,iEAAiE,IAAI,CAAC,IAAc,EAC/F,EAAY,AAAkB,aAAlB,OAAO,M,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCRhC,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAa,GAUb,EAAA,MAAA,CAAA,EAAA,cAAA,IAAgB,EAVT,OAAM,UAAuB,MAChC,YAAY,CAAO,CAAE,CAAO,CAAE,CAC1B,KAAK,CAAC,GACF,AAAmC,YAAnC,OAAO,MAAM,iBAAiB,EAC9B,MAAM,iBAAiB,CAAC,IAAI,CAAE,GAAW,IAAI,CAAC,WAAW,EAE7D,IAAI,CAAC,IAAI,CAAG,gBAChB,CACJ,CAEO,SAAS,EAAY,CAAS,CAAE,CAAG,EACtC,GAAI,CAAC,EACD,MAAM,IAAI,EAAe,GAE7B,OAAO,CACX,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCFO,SAAS,EAAS,CAAO,EAC5B,MAAO,kBAAkB,MAAM,CAC3B,AAdG,AAcI,EAdA,OAAO,CAAC,6BAA8B,CAAC,EAAG,EAAI,KACrD,IAAI,EAAK,EAAG,KAAK,CAAC,EAAG,GAOrB,OANI,AAAc,IAAd,EAAG,MAAM,EACT,CAAA,EAAK,EAAK,IADd,EAGI,AAAc,IAAd,EAAG,MAAM,EACT,CAAA,EAAK,EAAK,GADd,EAGO,CAAA,EAAG,EAAG,CAAC,EAAE,EAAA,CAAI,AACxB,GAMS,OAAO,CAAC,iBAAkB,SAC1B,OAAO,CAAC,kBAAmB,QAC3B,OAAO,CAAC,eAAgB,QACxB,OAAO,CAAC,iBAAkB,SAC1B,OAAO,CAAC,6BAA8B,SACtC,OAAO,CAAC,cAAe,IACvB,MAAM,CAAC,YAEpB,CAEO,SAAS,EAAU,CAAO,EAC7B,OAAO,IAAI,eAAe,CACtB,IAAI,KAAK,CAAC,EAAQ,CAAE,CAChB,KAAM,UACV,GAER,CAEO,SAAS,EAAS,CAAG,EACxB,IAAM,EAAQ,AAAI,OACd,oHAOA,KAGJ,SAAS,EAAQ,EAAO,EAAE,EACtB,OAAO,EACF,KAAK,CAAC,QACN,GAAG,CAAC,CAAC,EAAM,EAAO,KACf,GAAI,IAAU,EAAI,MAAM,CAAG,EAAG,CAC1B,GAAI,AAAgB,IAAhB,EAAK,MAAM,CACX,MAAO,CAAC,CAAC,EAAE,EAAK,EAAE,CAAC,CAGvB,GAAI,AAAgB,IAAhB,EAAK,MAAM,CACX,MAAO,CAAC,CAAC,EAAE,EAAK,CAAC,CAAC,AAE1B,MAAO,GAAI,AAAgB,IAAhB,EAAK,MAAM,CAClB,MAAO,AAAC,CAAA,AAAU,IAAV,EAAc,IAAM,IAAA,EAAQ,EAGxC,OAAO,AAAU,IAAV,EAAc,EAAO,IAAU,EAAI,MAAM,CAAG,EAAI,CAAC,CAAC,EAAE,EAAA,CAAM,CAAG,CAAC,CAAC,EAAE,EAAA,CAAM,AAClF,GACC,IAAI,CAAC,GACd,CAEA,MACI,aAGA,EACK,KAAK,CAAC,SACN,GAAG,CAAC,AAAC,IACF,IAAM,EAAI,EAAK,KAAK,CAAC,UACrB,AAAK,EACE,CACH,MAAO,EAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IACxB,IAAK,EAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,IACtB,KAAM,CAAC,CAAC,EAAE,CACL,OAAO,CAAC,cAAe,IACvB,OAAO,CAAC,SAAU,MAClB,IAAI,GACJ,KAAK,CAAC,SACN,GAAG,CAAC,AAAC,GAAS,EAAK,IAAI,IACvB,IAAI,CAAC,KACd,EAXe,IAYnB,GACC,MAAM,CAAC,AAAC,GAAS,GACjB,GAAG,CAAC,CAAC,EAAM,IACR,AAAI,EACO,EAAQ,EAAI,KAAO,CAAA,EAAG,EAAK,KAAK,CAAC,KAAK,EAAE,EAAK,GAAG,CAAA,CAAE,CAAG,KAAO,CAAA,EAAG,EAAK,IAAI,CAAA,CAAE,CAE9E,IAEV,MAAM,CAAC,AAAC,GAAS,EAAK,IAAI,IAC1B,IAAI,CAAC,OAElB,C,E,iB,C,GArFA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAahB,EAAA,MAAA,CAAA,EAAA,YAAA,IAAgB,GAQhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,E,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCtBT,SAAS,EAAS,CAAG,CAAE,CAAI,EAC9B,IAAM,EAAQ,SAAS,aAAa,CAAC,IACrC,CAAA,EAAM,KAAK,CAAC,OAAO,CAAG,OACtB,EAAM,IAAI,CAAG,EACb,EAAM,QAAQ,CAAG,EACjB,SAAS,IAAI,CAAC,WAAW,CAAC,GAC1B,EAAM,KAAK,GACX,SAAS,IAAI,CAAC,WAAW,CAAC,EAC9B,C,E,iB,C,GApBA,EAAA,MAAA,CAAA,EAAA,SAAA,IAAO,SAAS,EAAO,CAAG,SACtB,AAAI,EAAI,QAAQ,CAAC,KACN,EAAO,EAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAG/B,EAAI,QAAQ,CAAC,KACN,EAAO,EAAI,KAAK,CAAC,IAAI,CAAC,EAAE,EAG5B,EAAI,IAAI,GAAG,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,EAClD,GAEA,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,E,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCZH,EAAA,MAAA,CAAA,EAAA,MAAA,IAAA,GAGb,EAAA,MAAA,CAAA,EAAA,MAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,MAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,YAAA,IAAO,SAAS,EAAU,GAAG,CAAO,EAChC,IAAM,EAAW,AAAC,GAAS,GAAQ,AAAgB,UAAhB,OAAO,GAAqB,CAAC,MAAM,OAAO,CAAC,GAC9E,OAAO,EAAQ,MAAM,CAAC,CAAC,EAAM,KACzB,OAAO,IAAI,CAAC,GAAK,OAAO,CAAC,AAAC,IACtB,IAAM,EAAO,CAAI,CAAC,EAAI,CAChB,EAAO,CAAG,CAAC,EAAI,AACjB,CAAA,MAAM,OAAO,CAAC,IAAS,MAAM,OAAO,CAAC,GACrC,CAAI,CAAC,EAAI,CAAG,EAAK,MAAM,IAAI,GACpB,EAAS,IAAS,EAAS,GAClC,CAAI,CAAC,EAAI,CAAG,EAAU,EAAM,GAE5B,CAAI,CAAC,EAAI,CAAG,CAEpB,GACO,GACR,CAAC,EACR,GA3BO,IAAM,EAAM,OAAO,cAAc,CAElC,CAAE,eAAA,CAAc,CAAE,CAAG,OAAO,SAAS,CACpC,SAAS,EAAI,CAAG,CAAE,CAAI,EACzB,OAAO,EAAe,IAAI,CAAC,EAAK,EACpC,CAEO,SAAS,EAAI,CAAG,CAAE,CAAI,EACzB,OAAO,OAAO,wBAAwB,CAAC,EAAK,EAChD,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCTO,SAAS,EAAM,EAAK,CAAC,EACxB,OAAO,IAAI,QAAQ,AAAC,GAAY,WAAW,EAAS,GACxD,CAEO,SAAS,EAAS,CAAI,CAAE,CAAQ,EACnC,IAAI,EAEJ,OAAO,SAAU,GAAG,CAAI,EAMpB,aAAa,GACb,EAAU,WANK,KACX,EAAU,KACH,EAAK,KAAK,CAAC,IAAI,CAAE,IAIC,EACjC,CACJ,CAEO,SAAS,EAAS,CAAI,CAAE,CAAQ,EACnC,IAAI,EAAa,CAAA,EAEjB,OAAO,SAAU,GAAG,CAAI,EACf,IACD,EAAK,KAAK,CAAC,IAAI,CAAE,GACjB,EAAa,CAAA,EAEb,WAAW,WACP,EAAa,CAAA,CACjB,EAAG,GAEX,CACJ,C,E,iB,C,GA/BA,EAAA,MAAA,CAAA,EAAA,QAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,GAchB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,E,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDClBT,SAAS,EAAM,CAAG,CAAE,CAAC,CAAE,CAAC,EAC3B,OAAO,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,EAAK,KAAK,GAAG,CAAC,EAAG,IAAK,KAAK,GAAG,CAAC,EAAG,GAC/D,CAEO,SAAS,EAAW,CAAG,EAC1B,OAAO,EAAI,MAAM,CAAC,GAAG,WAAW,GAAK,EAAI,KAAK,CAAC,EACnD,CAEO,SAAS,EAAa,CAAM,EAC/B,GAAI,CAAC,EAAQ,MAAO,QAEpB,IAAM,EAAO,KAAK,KAAK,CAAC,EAAS,MAC3B,EAAM,KAAK,KAAK,CAAE,AAAA,CAAA,EAAS,AAAO,KAAP,CAAO,EAAQ,IAC1C,EAAM,KAAK,KAAK,CAAC,EAAS,AAAO,KAAP,EAAc,AAAM,GAAN,GAC9C,MAAO,AAAC,CAAA,EAAO,EAAI,CAAC,EAAM,EAAK,EAAI,CAAG,CAAC,EAAK,EAAG,AAAC,EAAE,GAAG,CAJxC,AAAC,GAAS,EAAM,GAAK,CAAC,CAAC,EAAE,EAAA,CAAK,CAAG,OAAO,IAIO,IAAI,CAAC,IACrE,CAEO,SAAS,EAAO,CAAG,EACtB,OAAO,EAAI,OAAO,CACd,WACA,AAAC,GACI,AAAA,CAAA,CACG,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACT,CAAA,CAAE,CAAC,EAAI,EAAI,EAEvB,CAEO,SAAS,EAAS,CAAG,EACxB,IAAM,EAAM,CACR,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,QAAS,IACT,SAAU,GACd,EACM,EAAM,AAAI,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,GAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,KAC1D,OAAO,EAAI,OAAO,CAAC,EAAK,AAAC,GAAQ,CAAG,CAAC,EAAI,EAAI,EACjD,C,E,iB,C,GAzCA,EAAA,MAAA,CAAA,EAAA,QAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,aAAA,IAAgB,GAIhB,EAAA,MAAA,CAAA,EAAA,eAAA,IAAgB,GAShB,EAAA,MAAA,CAAA,EAAA,SAAA,IAAgB,GAchB,EAAA,MAAA,CAAA,EAAA,WAAA,IAAgB,E,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCfH,EAAA,MAAA,CAAA,EAAA,kBAAA,IAAA,GAhBb,IAAA,EAAA,EAAA,YAEA,IAAM,EAAI,QACJ,EAAI,UACJ,EAAI,SACJ,EAAI,SACJ,EAAI,SACJ,EAAI,WAEV,SAAS,EAAa,CAAK,CAAE,CAAI,CAAE,CAAK,EACpC,MAAO,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EACH,IAAS,GAAK,IAAS,GAAK,aAAiB,QAC7C,CAAA,EAAG,EAAM,IAAI,CAAC,KAAK,UAAU,EAAE,EAAE,mBAAmB,CAAC,CAE7D,CAEO,IAAM,EAAkB,CAC3B,KAAM,EACN,QAAS,CAAC,CAAC,EAAE,EAAA,CAAG,CAChB,KAAM,CAAC,CAAC,EAAE,EAAA,CAAG,CACb,MAAO,CAAC,CAAC,EAAE,EAAA,CAAG,CACd,MAAO,CAAC,CAAC,EAAE,EAAA,CAAG,CACd,MAAO,CAAC,CAAC,EAAE,EAAA,CAAG,CACd,QAAS,CAAC,CAAC,EAAE,EAAA,CAAG,CAChB,QAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAA,CAAG,CACrB,MAAO,CAAC,CAAC,EAAE,EAAA,CAAG,CACd,SAAU,CAAC,CAAC,EAAE,EAAA,CAAG,CACjB,SAAU,CAAC,CAAC,EAAE,EAAA,CAAG,CACjB,OAAQ,CAAC,CAAC,EAAE,EAAA,CAAG,CACf,SAAU,CAAC,CAAC,EAAE,EAAA,CAAG,CACjB,MAAO,CAAC,CAAC,EAAE,EAAA,CAAG,CACd,QAAS,CAAC,CAAC,EAAE,EAAA,CAAG,CAChB,SAAU,CAAC,CAAC,EAAE,EAAA,CAAG,AACrB,CAEe,CAAA,EAAA,OAAA,CAAA,CACX,GAAI,EACJ,UAAW,EACX,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,EACP,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,MAAO,EACP,SAAU,EACV,SAAU,EACV,SAAU,EACV,KAAM,EACN,KAAM,EACN,aAAc,EACd,YAAa,EACb,WAAY,EACZ,QAAS,EACT,OAAQ,EACR,IAAK,EACL,MAAO,EACP,SAAU,EACV,WAAY,EACZ,cAAe,EACf,eAAgB,EAChB,gBAAiB,EACjB,OAAQ,EACR,YAAa,EACb,KAAM,EACN,QAAS,EACT,YAAa,EACb,aAAc,EACd,gBAAiB,EACjB,QAAS,EACT,MAAO,CAAC,CAAC,EAAE,EAAA,CAAG,CACd,QAAS,CAAC,EAAE,CACZ,OAAQ,CAAC,EAAgB,CACzB,YAAa,CAAC,EAAgB,CAC9B,SAAU,CAAC,EAAgB,CAC3B,SAAU,CACN,CACI,GAAG,CAAe,CAClB,SAAU,CAAC,EAAO,EAAG,KACjB,IAAM,EAAW,CAAC,MAAO,OAAQ,QAAQ,CACzC,MAAO,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EACH,EAAS,QAAQ,CAAC,GAClB,CAAA,EAAG,EAAM,IAAI,CAAC,KAAK,aAAa,EAAE,EAAS,QAAQ,GAAG,cAAc,CAAC,CAE7E,CACJ,EACH,CACD,QAAS,CACL,CACI,QAAS,CAAC,CAAC,EAAE,EAAA,CAAG,CAChB,KAAM,EACN,IAAK,CACT,EACH,CACD,UAAW,CACP,CACI,KAAM,EACN,KAAM,CACV,EACH,CACD,WAAY,CACR,IAAK,EACL,OAAQ,EACR,OAAQ,EACR,MAAO,EACP,OAAQ,EACR,MAAO,CACX,EACA,SAAU,CACN,IAAK,EACL,KAAM,EACN,KAAM,EACN,MAAO,EACP,OAAQ,EACR,SAAU,EACV,UAAW,CACf,EACA,cAAe,EACf,KAAM,EACN,MAAO,EACP,OAAQ,EACR,WAAY,CAChB,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GC3He,EAAA,OAAA,CAAA,CACX,WAAY,CACR,cACA,WACA,WACA,aACA,WACA,cACA,aACA,cACA,eACA,sBACA,WACA,QACA,QACA,OACA,aACA,QACA,eACA,SACA,eACA,SACA,UACA,aACA,WACA,UACA,MACA,YACA,aACA,cACA,SACH,CACD,QAAS,CAAC,eAAgB,cAAe,OAAQ,OAAQ,QAAQ,CACjE,OAAQ,CACJ,QACA,UACA,iBACA,iBACA,UACA,QACA,QACA,aACA,iBACA,YACA,QACA,OACA,UACA,WACA,aACA,SACA,UACA,UACA,UACA,aACA,eACA,UACH,CACD,WAAY,CACR,QACA,SACA,aACA,cACA,SACA,0BACA,0BACA,cACA,2BACA,6BACA,0BACA,0BACA,0BACA,2BACA,4BACA,0BACA,0BACA,wBACA,wBACA,uBACA,uBACH,AACL,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GChFA,IAAA,EAAA,EAAA,mBACA,EAAA,EAAA,UAEe,OAAM,EACjB,YAAY,CAAG,CAAE,CACb,IAAI,CAAC,GAAG,CAAG,EACX,GAAM,CAAE,OAAA,CAAM,CAAE,YAAA,CAAW,CAAE,CAAG,CAE5B,CAAA,EAAO,SAAS,YAAY,QAC5B,IAAI,CAAC,UAAU,CAAG,EAAO,SAAS,EAElC,IAAI,CAAC,UAAU,CAAG,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAO,SAAS,EACxC,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,IAAI,CAAC,UAAU,CAAE,CAAC,8BAA8B,EAAE,EAAO,SAAS,CAAA,CAAE,GAGpF,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,AAAA,CAAA,EAAA,EAAA,YAAY,AAAZ,IAAgB,oDAE5B,IAAM,EAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,GAChD,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,AAAS,QAAT,EAAgB,CAAC,gEAAgE,EAAE,EAAK,CAAC,CAAC,EAEtG,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EACI,EAAY,SAAS,CAAC,KAAK,CAAC,AAAC,GAAQ,EAAI,QAAQ,CAAC,UAAU,GAAK,IAAI,CAAC,UAAU,EAChF,2DAGJ,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAG,EAAI,EAAE,CACtC,IAAI,CAAC,IAAI,EACb,CAEA,WAAW,MAAO,CACd,MAAO;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;AA6BiC,gDAAA,EAAE,EAAA,OAAO,CAAC;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;AA6BlD,QAAA,CAAC,AACL,CAEA,MAAM,CAAS,CAAE,CACb,MAAO,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAW,IAAI,CAAC,UAAU,CAC3C,CAEA,MAAO,CACH,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,IAAI,CAAC,GAAG,CA8B3B,GA5BI,AAAC,EAAO,MAAM,EACd,CAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAG,EAAS,IAAI,AAAJ,EAGzC,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,KAAK,CAAC,qBAC1B,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,KAAK,CAAC,cACzB,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,KAAK,CAAC,SACzB,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,KAAK,CAAC,eAC1B,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,KAAK,CAAC,iBAC5B,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,KAAK,CAAC,gBAC3B,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,KAAK,CAAC,eAC1B,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,KAAK,CAAC,iBAC5B,IAAI,CAAC,SAAS,CAAG,IAAI,CAAC,KAAK,CAAC,iBAC5B,IAAI,CAAC,aAAa,CAAG,IAAI,CAAC,KAAK,CAAC,sBAChC,IAAI,CAAC,eAAe,CAAG,IAAI,CAAC,KAAK,CAAC,wBAClC,IAAI,CAAC,cAAc,CAAG,IAAI,CAAC,KAAK,CAAC,uBACjC,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,KAAK,CAAC,eACzB,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,KAAK,CAAC,gBAC3B,IAAI,CAAC,OAAO,CAAG,IAAI,CAAC,KAAK,CAAC,eAC1B,IAAI,CAAC,YAAY,CAAG,IAAI,CAAC,KAAK,CAAC,qBAC/B,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CAAC,aACxB,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,KAAK,CAAC,cACzB,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,KAAK,CAAC,iBAC3B,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CAAC,aACxB,IAAI,CAAC,UAAU,CAAG,IAAI,CAAC,KAAK,CAAC,mBAC7B,IAAI,CAAC,UAAU,CAAG,IAAI,CAAC,KAAK,CAAC,mBAC7B,IAAI,CAAC,YAAY,CAAG,IAAI,CAAC,KAAK,CAAC,qBAE3B,EAAO,KAAK,CAAE,CACd,IAAM,EAAQ,EAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,GAAG,EAClD,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EACI,aAAiB,kBAAoB,aAAiB,kBACtD,qFAEJ,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,EAAe,EAAO,IAAI,CAAC,MAAM,EACjC,EAAM,SAAS,CAAG,YAClB,IAAI,CAAC,MAAM,CAAG,CAClB,CAEI,EAAO,QAAQ,EACf,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,IAAI,CAAC,OAAO,CAAE,gBAGvB,EAAA,QAAQ,EACR,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,IAAI,CAAC,OAAO,CAAE,aAE/B,CAEA,QAAQ,CAAU,CAAE,CAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAG,GACd,EACA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAG,GAE5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,IAAI,CAAC,OAAO,CAAE,cAE/B,CACJ,CAxJqB,EAAA,OAAA,CAAA,C,E,C,kB,Q,U,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCHrB,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,W,E,E,c,C,EAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAI,CAAC,GAAG,CAAG,EAEX,IAAI,CAAC,SAAS,CAAG,CACb,QAAS,EAAA,OAAG,AAChB,EAEA,IAAI,CAAC,QAAQ,CAAG,CAAC,EAEjB,IAAI,CAAC,MAAM,CAAC,EAAI,MAAM,CAAC,IAAI,CAC/B,CAEA,MAAO,CACH,IAAM,EAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAC7C,CAAA,IAAI,CAAC,QAAQ,CAAG,IAAI,CAAC,SAAS,CAAC,EAAK,EAAI,CAAC,CAC7C,CAEA,IAAI,CAAG,CAAE,CACL,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAI,EAAI,CACjC,CAEA,OAAO,CAAK,CAAE,CACV,IAAI,CAAC,SAAS,CAAG,AAAA,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,IAAI,CAAC,SAAS,CAAE,GAC3C,IAAI,CAAC,IAAI,EACb,CACJ,C,E,C,W,Q,U,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GC7BA,IAAM,EAAO,CACT,aAAc,OACd,MAAO,KACP,oBAAqB,OACrB,OAAQ,KACR,KAAM,KACN,MAAO,KACP,KAAM,KACN,KAAM,KACN,aAAc,OACd,WAAY,KACZ,SAAU,KACV,UAAW,OACX,eAAgB,OAChB,eAAgB,OAChB,WAAY,KACZ,aAAc,OACd,eAAgB,OAChB,QAAS,KACT,OAAQ,KACR,KAAM,KACN,eAAgB,KAChB,kBAAmB,OACnB,WAAY,KACZ,kBAAmB,OACnB,iBAAkB,OAClB,sBAAuB,SACvB,cAAe,QACf,WAAY,QACZ,gBAAiB,QACjB,oBAAqB,SACrB,2BAA4B,QAC5B,kBAAmB,OACnB,YAAa,OACb,YAAa,OACb,QAAS,OACT,wBAAyB,SAC7B,CAEe,CAAA,EAAA,OAAA,CAAA,EAEX,AAAkB,aAAlB,OAAO,QACP,CAAA,MAAM,CAAC,uBAAuB,CAAG,CADrC,C,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCzCA,IAAA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,sB,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,mB,G,E,c,C,GACA,GAAA,EAAA,e,G,E,c,C,IACA,GAAA,EAAA,c,G,E,c,C,IACA,GAAA,EAAA,a,G,E,c,C,IACA,GAAA,EAAA,c,G,E,c,C,IACA,GAAA,EAAA,uB,G,E,c,C,IACA,GAAA,EAAA,gB,G,E,c,C,IACA,GAAA,EAAA,gB,G,E,c,C,IACA,GAAA,EAAA,mB,G,E,c,C,IACA,GAAA,EAAA,gB,G,E,c,C,IACA,GAAA,EAAA,e,G,E,c,C,GAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAO,GACP,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,EAAA,OAAQ,AAAR,EAAS,GACT,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,EAAA,OAAc,AAAd,EAAe,GACf,AAAA,CAAA,EAAA,EAAA,OAAW,AAAX,EAAY,GACZ,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,EAAA,OAAe,AAAf,EAAgB,GAChB,AAAA,CAAA,EAAA,EAAA,OAAc,AAAd,EAAe,GACf,AAAA,CAAA,EAAA,EAAA,OAAa,AAAb,EAAc,GACd,AAAA,CAAA,EAAA,EAAA,OAAa,AAAb,EAAc,GACd,AAAA,CAAA,EAAA,EAAA,OAAgB,AAAhB,EAAiB,GACjB,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAO,GACP,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,EAAA,OAAU,AAAV,EAAW,GACX,AAAA,CAAA,EAAA,EAAA,OAAW,AAAX,EAAY,GACZ,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,GAAA,OAAa,AAAb,EAAc,GACd,AAAA,CAAA,EAAA,GAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,GAAA,OAAQ,AAAR,EAAS,GACT,AAAA,CAAA,EAAA,GAAA,OAAO,AAAP,EAAQ,GACR,AAAA,CAAA,EAAA,GAAA,OAAQ,AAAR,EAAS,GACT,AAAA,CAAA,EAAA,GAAA,OAAiB,AAAjB,EAAkB,GAClB,AAAA,CAAA,EAAA,GAAA,OAAU,AAAV,EAAW,GACX,AAAA,CAAA,EAAA,GAAA,OAAU,AAAV,EAAW,GACX,AAAA,CAAA,EAAA,GAAA,OAAa,AAAb,EAAc,GACd,AAAA,CAAA,EAAA,GAAA,OAAS,AAAT,EAAU,GACV,AAAA,CAAA,EAAA,GAAA,OAAU,AAAV,EAAW,EACf,CACJ,C,E,C,W,Q,Y,Q,Y,Q,a,Q,c,Q,Y,Q,c,Q,mB,Q,gB,Q,c,Q,oB,Q,mB,Q,kB,Q,kB,Q,qB,Q,W,Q,c,Q,c,Q,e,Q,gB,Q,Y,Q,Y,Q,Y,Q,c,Q,kB,Q,c,Q,a,Q,Y,Q,a,Q,sB,Q,e,Q,e,Q,kB,Q,e,Q,c,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAO,CAAG,EAC9B,GAAM,CACF,OAAA,CAAM,CACN,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,MAAO,CACZ,IAAA,IACW,EAAO,GAAG,CAErB,MAAM,IAAI,CAAM,EACZ,GAAI,EAAQ,CACR,IAAM,EAAS,EAAI,GAAG,CAChB,EAAW,EAAO,IAAI,EAAI,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,GACjC,EAAe,EAAO,UAAU,CAAC,EAAS,AAE5C,CAAA,GAAY,GACZ,MAAM,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,IACN,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAa,IAAI,CAAC,EAAK,EAAQ,EAAQ,KAEvC,IAAI,eAAe,CAAC,GACpB,EAAO,GAAG,CAAG,GAGb,IAAW,EAAI,GAAG,GAClB,EAAI,MAAM,CAAC,GAAG,CAAG,EACb,EAAI,OAAO,EAAI,GACf,EAAI,IAAI,CAAC,gBAAiB,KACtB,EAAI,IAAI,CAAC,UAAW,EACxB,GAGZ,MACI,MAAM,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,IACN,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,CAE3B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCvCwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,GAAM,CACF,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,MAAM,CAAG,CAAE,CAAK,EACZ,GAAI,AAAU,KAAA,IAAV,EAAqB,OAAO,CAAM,CAAC,EAAI,AAC3C,CAAA,CAAM,CAAC,EAAI,CAAG,CAClB,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCXwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,GAAM,CACF,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,OAAA,CAAM,CACN,YAAa,CAAE,UAAA,CAAS,CAAE,CAC1B,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,MAAO,iBACH,IAAM,EAAS,MAAM,EAAO,IAAI,GAIhC,GAHA,EAAO,IAAI,CAAG,EAAK,GAAG,CAAC,QACvB,EAAI,IAAI,CAAC,QAEL,EAAO,KAAK,CACZ,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAU,MAAM,CAAE,IAAS,CACnD,IAAM,EAAW,CAAS,CAAC,EAAM,AAC7B,CAAA,IAAa,GACb,EAAS,KAAK,EAEtB,CAGJ,OAAO,CACX,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC3BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAS,CAAG,EAChC,GAAM,CACF,SAAU,CAAE,OAAA,CAAM,CAAE,CACpB,KAAA,CAAI,CACJ,OAAA,CAAM,CACT,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,QAAS,CACd,QACI,IAAM,EAAS,EAAO,KAAK,GAG3B,OAFA,EAAO,IAAI,CAAG,EAAK,GAAG,CAAC,SACvB,EAAI,IAAI,CAAC,SACF,CACX,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCfwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,MAAA,IACI,AAAI,EAAI,OAAO,CACJ,EAAI,KAAK,GAET,EAAI,IAAI,EAG3B,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCVwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAEnB,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,IAAI,CAAI,EACJ,EAAI,WAAW,CAAG,EACd,EAAI,QAAQ,EACZ,CAAA,EAAO,IAAI,CAAG,CAAA,EAAG,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAI,WAAW,EAAE,GAAG,EAAE,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAI,QAAQ,EAAA,CAAG,AAAH,EAEjF,EAAI,IAAI,CAAC,OAAQ,EAAI,WAAW,CACpC,CACJ,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,UAAW,CAChB,IAAI,CAAI,EACJ,EAAI,IAAI,CAAG,EAAI,WAAW,CAAG,CACjC,CACJ,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,WAAY,CACjB,IAAI,CAAI,EACJ,EAAI,IAAI,CAAG,EAAI,WAAW,CAAG,CACjC,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,GAAM,CACF,SAAU,CAAE,OAAA,CAAM,CAAE,CACpB,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,QAAA,CAAO,CACV,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,IAAK,IAAM,EAAO,MAAM,EAAI,EAC5B,IAAK,AAAC,IACF,EAAO,MAAM,CAAG,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAY,EAAG,GACrC,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,UAAU,EAAE,EAAE,SAAS,AAAgB,IAAhB,EAAO,MAAM,CAAQ,IAAA,CAAK,CACvE,AAAkB,IAAlB,EAAO,MAAM,EACb,EAAQ,GAAG,CAAC,SAAU,EAAO,MAAM,CAE3C,CACJ,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,QAAS,CACd,IAAK,IAAM,EAAO,KAAK,CACvB,IAAK,AAAC,IACF,EAAO,KAAK,CAAG,EACf,EAAI,IAAI,CAAC,QAAS,EACtB,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC1BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAe,CAAG,EACtC,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CAE/B,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,cAAe,CACpB,IAAK,IAAM,EAAO,WAAW,EAAI,EACjC,IAAK,AAAC,IAEE,OAAO,KAAK,CADhB,EAAO,WAAW,KAElB,CAAA,EAAO,WAAW,CAAG,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAM,EAAG,EAAI,QAAQ,CAAA,CACpD,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCXwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAY,CAAG,EACnC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,WAAY,CACjB,IAAK,KACD,GAAM,CAAE,SAAA,CAAQ,CAAE,CAAG,EAAI,QAAQ,CAAC,MAAM,QACxC,AAAI,IAAa,IAAiB,EAC3B,GAAY,CACvB,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCRwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,SAAS,EAAU,CAAG,CAAE,CAAW,EAC/B,OAAO,IAAI,QAAQ,CAAC,EAAS,KACzB,GAAI,IAAQ,EAAI,GAAG,CAAE,OACrB,GAAM,CAAE,QAAA,CAAO,CAAE,YAAA,CAAW,CAAE,aAAA,CAAY,CAAE,CAAG,EAE/C,EAAI,KAAK,GACT,EAAI,GAAG,CAAG,EACV,EAAI,MAAM,CAAC,IAAI,CAAG,GAElB,EAAI,IAAI,CAAC,cAAe,GAExB,EAAI,IAAI,CAAC,uBAAwB,KAC7B,EAAI,WAAW,CAAG,CACtB,GAEA,EAAI,IAAI,CAAC,gBAAiB,UACtB,EAAI,YAAY,CAAG,EACnB,EAAI,WAAW,CAAG,EAEd,GACA,MAAM,EAAI,IAAI,GAGlB,EAAI,MAAM,CAAC,IAAI,CAAG,GAElB,GACJ,EACJ,EACJ,CAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,gBAAiB,CACtB,MAAO,AAAC,GACG,EAAU,EAAK,EAAI,WAAW,CAE7C,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,YAAa,CAClB,MAAO,AAAC,GACG,EAAU,EAAK,EAE9B,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,IAAK,EAAI,SAAS,AACtB,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC9CwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAgB,CAAG,EACvC,GAAM,CACF,SAAU,CAAE,OAAA,CAAM,CAAE,CACpB,KAAA,CAAI,CACJ,OAAA,CAAM,CACT,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,eAAgB,CACrB,IAAA,IACW,EAAO,YAAY,CAE9B,IAAI,CAAI,EACA,EACI,IAAS,EAAO,YAAY,GAChC,EAAO,YAAY,CAAG,EACtB,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,QAAQ,EAAE,EAAE,AAAS,IAAT,EAAe,EAAK,GAAG,CAAC,UAAY,CAAA,EAAG,EAAK,CAAC,CAAC,CAAA,CAAE,EAEtF,EAAI,YAAY,CAAG,CAE3B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCrBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAe,CAAG,EACtC,GAAM,CACF,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,SAAU,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CAChC,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,cAAe,CACpB,IAAA,IACW,EAAQ,OAAO,CAAC,WAAW,EAAI,UAE1C,IAAI,CAAK,EAEL,GADI,AAAC,GAAO,CAAA,EAAQ,SAApB,EACI,AAAU,YAAV,EACA,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,QAAS,MAC1B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,SAAU,MAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,SAAU,MAC3B,OAAO,EAAQ,OAAO,CAAC,WAAW,KAC/B,CACH,IAAM,EAAa,EAAM,KAAK,CAAC,KAAK,GAAG,CAAC,QAClC,CAAE,YAAA,CAAW,CAAE,aAAA,CAAY,CAAE,CAAG,EAEhC,EAAa,CAAU,CAAC,EAAE,CAAG,CAAU,CAAC,EAAE,AAE5C,CAHgB,EAAc,EAGhB,GACd,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAQ,QAAS,CAAA,EAAG,EAAa,EAAa,EAAE,CAAC,EAC1D,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,SAAU,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,SAAU,YAE3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,QAAS,QAC1B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAQ,SAAU,CAAA,EAAG,EAAc,EAAW,EAAE,CAAC,EAC1D,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,SAAU,WAG/B,EAAQ,OAAO,CAAC,WAAW,CAAG,CAClC,CAEA,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,gBAAgB,EAAE,EAAE,AAAU,YAAV,EAAsB,EAAK,GAAG,CAAC,WAAa,EAAA,CAAO,CACjG,EAAI,IAAI,CAAC,cAAe,EAC5B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCzCwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAc,CAAG,EACrC,GAAM,CACF,OAAA,CAAM,CACN,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,EAEE,EAAU,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,UAE9B,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,MAAO,IACH,IAAI,QAAQ,CAAC,EAAS,KAClB,GAAI,CACA,EAAQ,KAAK,CAAG,EAAO,UAAU,CACjC,EAAQ,MAAM,CAAG,EAAO,WAAW,CACnC,EAAQ,UAAU,CAAC,MAAM,SAAS,CAAC,EAAQ,EAAG,GAC9C,EAAQ,EAAQ,SAAS,CAAC,aAC9B,CAAE,MAAO,EAAK,CACV,EAAO,IAAI,CAAG,EACd,EAAO,EACX,CACJ,EACR,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,MAAO,IACH,IAAI,QAAQ,CAAC,EAAS,KAClB,GAAI,CACA,EAAQ,KAAK,CAAG,EAAO,UAAU,CACjC,EAAQ,MAAM,CAAG,EAAO,WAAW,CACnC,EAAQ,UAAU,CAAC,MAAM,SAAS,CAAC,EAAQ,EAAG,GAC9C,EAAQ,MAAM,CAAC,AAAC,IACZ,EAAQ,IAAI,eAAe,CAAC,GAChC,EACJ,CAAE,MAAO,EAAK,CACV,EAAO,IAAI,CAAG,EACd,EAAO,EACX,CACJ,EACR,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,MAAO,MAAO,IACV,IAAM,EAAU,MAAM,EAAI,UAAU,GAC9B,EAAW,GAAQ,CAAC,UAAU,EAAE,AAAA,CAAA,EAAA,EAAA,YAAY,AAAZ,EAAa,EAAO,WAAW,EAAA,CAAG,CAGxE,MAFA,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,CAAA,EAAG,EAAS,IAAI,CAAC,EACnC,EAAI,IAAI,CAAC,aAAc,GAChB,CACX,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GChDwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAHxB,IAAA,EAAA,EAAA,sB,E,E,c,C,GACA,EAAA,EAAA,YAEe,SAAS,EAAc,CAAG,EACrC,GAAM,CACF,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,SAAU,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CAChC,CAAG,EAEE,EAAmB,AAAC,IACtB,AAAA,EAAA,OAAS,CAAE,EAAE,CAAC,SAAU,KACpB,EAAI,IAAI,CAAC,aAAc,AAAA,EAAA,OAAS,CAAE,YAAY,EAE1C,AAAA,EAAA,OAAU,CAAC,YAAY,EACvB,EAAI,KAAK,CAAG,aACZ,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,mBAElB,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,kBAGzB,EAAI,IAAI,CAAC,SACb,GAEA,AAAA,EAAA,OAAS,CAAE,EAAE,CAAC,QAAS,AAAC,IACpB,EAAI,IAAI,CAAC,kBAAmB,EAChC,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,IAAA,IACW,AAAA,EAAA,OAAU,CAAC,YAAY,CAElC,MAAM,IAAI,CAAK,EACP,EACA,MAAM,AAAA,EAAA,OAAS,CAAE,OAAO,CAAC,GAEzB,MAAM,AAAA,EAAA,OAAU,CAAC,IAAI,EAE7B,CACJ,EACJ,EAEM,EAAmB,AAAC,IACtB,EAAI,KAAK,CAAC,SAAU,yBAA0B,KAC1C,EAAI,IAAI,CAAC,aAAc,EAAI,UAAU,EACrC,EAAI,IAAI,CAAC,SACb,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,IAAA,IACW,SAAS,iBAAiB,GAAK,EAE1C,IAAI,CAAK,EACD,GACA,EAAI,KAAK,CAAG,aACZ,EAAO,qBAAqB,IAE5B,EAAO,oBAAoB,EAEnC,CACJ,EACJ,EAEA,EAAI,IAAI,CAAC,uBAAwB,KACzB,AAAA,EAAA,OAAS,CAAE,SAAS,CACpB,EAAiB,GACV,EAAO,wBAAwB,CACtC,EAAiB,GAEjB,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,IAAA,IACW,CAAA,EAEX,MACI,EAAO,IAAI,CAAG,EAAK,GAAG,CAAC,2BAC3B,CACJ,GAIJ,AAAA,CAAA,EAAA,EAAA,GAAG,AAAH,EAAI,EAAK,aAAc,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,cACpC,EACJ,C,E,C,qB,Q,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GClFA,IAAM,EAAY,CACd,CACI,oBACA,iBACA,oBACA,oBACA,mBACA,kBACH,CAED,CACI,0BACA,uBACA,0BACA,0BACA,yBACA,wBACH,CAED,CACI,0BACA,yBACA,iCACA,yBACA,yBACA,wBACH,CACD,CACI,uBACA,sBACA,uBACA,uBACA,sBACA,qBACH,CACD,CACI,sBACA,mBACA,sBACA,sBACA,qBACA,oBACH,CACJ,CAEK,EAAY,AAAC,CAAA,KACf,GAAI,AAAoB,aAApB,OAAO,SACP,MAAO,CAAA,EAGX,IAAM,EAAoB,CAAS,CAAC,EAAE,CAChC,EAAc,CAAC,EAErB,IAAK,IAAM,KAAc,EAErB,GAAI,AADyB,CAAU,CAAC,EAAE,GACd,SAAU,CAClC,IAAK,GAAM,CAAC,EAAO,EAAO,GAAI,EAAW,OAAO,GAC5C,CAAW,CAAC,CAAiB,CAAC,EAAM,CAAC,CAAG,EAG5C,OAAO,CACX,CAGJ,MAAO,CAAA,CACX,CAAA,IAEM,EAAe,CACjB,OAAQ,EAAU,gBAAgB,CAClC,MAAO,EAAU,eAAe,AACpC,EAEI,EAAa,CACb,QAAA,CAAQ,EAAU,SAAS,eAAe,CAAE,IACjC,IAAI,QAAQ,CAAC,EAAS,KACzB,IAAM,EAAsB,KACxB,EAAW,GAAG,CAAC,SAAU,GACzB,GACJ,EAEA,EAAW,EAAE,CAAC,SAAU,GAExB,IAAM,EAAgB,CAAO,CAAC,EAAU,iBAAiB,CAAC,CAAC,EAEvD,CAAA,aAAyB,SACzB,EAAc,IAAI,CAAC,GAAqB,KAAK,CAAC,EAEtD,GAEJ,KAAA,IACW,IAAI,QAAQ,CAAC,EAAS,KACzB,GAAI,CAAC,EAAW,YAAY,CAAE,YAC1B,IAIJ,IAAM,EAAmB,KACrB,EAAW,GAAG,CAAC,SAAU,GACzB,GACJ,EAEA,EAAW,EAAE,CAAC,SAAU,GAExB,IAAM,EAAgB,QAAQ,CAAC,EAAU,cAAc,CAAC,EAEpD,CAAA,aAAyB,SACzB,EAAc,IAAI,CAAC,GAAkB,KAAK,CAAC,EAEnD,GAEJ,OAAA,CAAO,EAAS,IACL,EAAW,YAAY,CAAG,EAAW,IAAI,GAAK,EAAW,OAAO,CAAC,EAAS,GAErF,SAAS,CAAQ,EACb,EAAW,EAAE,CAAC,SAAU,EAC5B,EACA,QAAQ,CAAQ,EACZ,EAAW,EAAE,CAAC,QAAS,EAC3B,EACA,GAAG,CAAK,CAAE,CAAQ,EACd,IAAM,EAAY,CAAY,CAAC,EAAM,AACjC,CAAA,GACA,SAAS,gBAAgB,CAAC,EAAW,EAAU,CAAA,EAEvD,EACA,IAAI,CAAK,CAAE,CAAQ,EACf,IAAM,EAAY,CAAY,CAAC,EAAM,AACjC,CAAA,GACA,SAAS,mBAAmB,CAAC,EAAW,EAAU,CAAA,EAE1D,EACA,IAAK,CACT,EAEA,OAAO,gBAAgB,CAAC,EAAY,CAChC,aAAc,CACV,IAAK,IAAM,CAAA,CAAQ,QAAQ,CAAC,EAAU,iBAAiB,CAAC,AAC5D,EACA,QAAS,CACL,WAAY,CAAA,EACZ,IAAK,IAAM,QAAQ,CAAC,EAAU,iBAAiB,CAAC,AACpD,EACA,UAAW,CACP,WAAY,CAAA,EACZ,IAAK,IAAM,CAAA,CAAQ,QAAQ,CAAC,EAAU,iBAAiB,CAAC,AAC5D,CACJ,GAEI,AAAC,GACD,CAAA,EAAa,CAAE,UAAW,CAAA,CAAM,CAAA,EAGrB,EAAA,OAAA,CAAA,C,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCtJS,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAiB,CAAG,EACxC,GAAM,CACF,YAAA,CAAW,CACX,SAAU,CAAE,WAAA,CAAU,CAAE,QAAA,CAAO,CAAE,CACpC,CAAG,EAEA,EAAU,GACd,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,gBAAiB,CACtB,IAAA,IACW,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,sBAE7B,IAAI,CAAK,EACD,GACA,EAAU,EAAQ,KAAK,CAAC,OAAO,CAC3B,EAAY,sBAAsB,EAClC,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,SAAS,IAAI,CAAE,GAE1B,EAAI,KAAK,CAAG,gBACZ,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,QAAS,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,SAAU,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,sBAClB,EAAI,IAAI,CAAC,gBAAiB,CAAA,KAEtB,EAAY,sBAAsB,EAClC,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAY,GAEnB,IACA,EAAQ,KAAK,CAAC,OAAO,CAAG,EACxB,EAAU,IAEd,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,sBACrB,EAAI,IAAI,CAAC,gBAAiB,CAAA,IAG9B,EAAI,IAAI,CAAC,SACb,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCuBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GA9DxB,IAAA,EAAA,EAAA,YA8De,SAAS,EAAO,CAAG,EAC9B,GAAM,CACF,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,EACJ,GAAI,SAAS,uBAAuB,CAChC,CAlEJ,GAAM,CACF,SAAU,CAAE,OAAA,CAAM,CAAE,CACpB,MAAA,CAAK,CACL,OAAA,CAAM,CACT,CA8Da,CA5Dd,CAAA,EAAO,uBAAuB,CAAG,CAAA,EAEjC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EA0Dc,EA1DL,MAAO,CACZ,IAAA,IACW,SAAS,uBAAuB,CAE3C,IAAI,CAAK,EACD,GACA,AAoDE,EApDE,KAAK,CAAG,MACZ,EAAO,uBAAuB,GAAG,KAAK,CAAC,AAAC,IAEpC,MADA,EAAO,IAAI,CAAG,EACR,CACV,IAEA,SAAS,oBAAoB,GAAG,KAAK,CAAC,AAAC,IAEnC,MADA,EAAO,IAAI,CAAG,EACR,CACV,EAER,CACJ,GAEA,EAAM,EAAQ,wBAAyB,KACnC,AAqCU,EArCN,IAAI,CAAC,MAAO,CAAA,EACpB,GAEA,EAAM,EAAQ,wBAAyB,KACnC,AAiCU,EAjCN,IAAI,CAAC,MAAO,CAAA,EACpB,EA+BA,MAEO,GAAI,EAAO,8BAA8B,CAC5C,CA9BJ,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,AA8BL,EA9BS,QAAQ,CAE/B,EAAO,yBAAyB,CAAC,UAEjC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EA0Bc,EA1BL,MAAO,CACZ,IAAA,IACW,AAAkC,uBAAlC,EAAO,sBAAsB,CAExC,IAAI,CAAK,EACD,GACA,AAoBE,EApBE,KAAK,CAAG,MACZ,EAAO,yBAAyB,CAAC,sBACjC,AAkBE,EAlBE,IAAI,CAAC,MAAO,CAAA,KAEhB,EAAO,yBAAyB,CAAC,UACjC,AAeE,EAfE,IAAI,CAAC,MAAO,CAAA,GAExB,CACJ,EAWO,KAGH,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,MAAO,CACZ,IAAA,IACW,CAAA,EAEX,MACI,EAAO,IAAI,CAAG,EAAK,GAAG,CAAC,oBAC3B,CACJ,EAER,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GChFwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CAE/B,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,IAAK,IAAM,EAAI,UAAU,CAAG,EAAO,QAAQ,AAC/C,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,IAAK,IACM,EAAO,QAAQ,CAAC,MAAM,CAAG,EAAO,QAAQ,CAAC,GAAG,CAAC,EAAO,QAAQ,CAAC,MAAM,CAAG,GAAK,CAE1F,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCZwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,IAAK,IAAM,EAAI,WAAW,CAAG,EAAI,QAAQ,AAC7C,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCJwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAG,EAClC,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CAC/B,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,UAAW,CAChB,IAAK,IACD,AAAI,AAA0B,WAA1B,OAAO,EAAO,OAAO,CAAuB,EAAO,OAAO,CACvD,CAAC,CAAE,CAAA,EAAO,WAAW,CAAG,GAAK,CAAC,EAAO,MAAM,EAAI,CAAC,EAAO,KAAK,EAAI,EAAO,UAAU,CAAG,CAAA,CAEnG,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCRwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAY,CAAG,EACnC,GAAM,CAAE,WAAA,CAAU,CAAE,QAAA,CAAO,CAAE,OAAA,CAAM,CAAE,CAAG,EAAI,QAAQ,CAEpD,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,WAAY,CACjB,QACI,GAAM,CAAE,WAAA,CAAU,CAAE,YAAA,CAAW,CAAE,CAAG,EAC9B,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GAC5B,EAAa,EAAa,CAE5B,CADmB,EAAQ,EACV,GAEjB,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,QAAS,CAAA,EADN,EAAS,EAAc,EAAS,IACZ,CAAC,CAAC,EAC3C,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,SAAU,UAG5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,QAAS,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,SAAU,CAAA,EAFR,EAAQ,EAAa,EAAU,IAET,CAAC,CAAC,GAEhD,EAAI,IAAI,CAAC,WAAY,CACjB,MAAO,EAAI,KAAK,CAChB,OAAQ,EAAI,MAAM,AACtB,EACJ,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,IAAK,IACM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAI,QAAQ,CAAC,OAAO,CAE3C,GAEA,IAAM,EAAO,CAAC,SAAU,SAAU,OAAQ,QAAS,MAAO,QAAQ,CAClE,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAK,MAAM,CAAE,IAAS,CAC9C,IAAM,EAAM,CAAI,CAAC,EAAM,CACvB,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,EAAK,CACV,IAAK,IACM,EAAI,IAAI,CAAC,EAAI,AAE5B,EACJ,CAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,IAAK,CACV,IAAK,IACM,EAAI,IAAI,CAAG,OAAO,WAAW,AAE5C,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,IAAK,CACV,IAAK,IACM,EAAI,GAAG,CAAG,OAAO,WAAW,AAE3C,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC5BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,GAAM,CACF,SAAU,CAAE,QAAA,CAAO,CAAE,CACrB,KAAA,CAAI,CACJ,OAAA,CAAM,CACT,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,IAAA,IACW,EAAQ,OAAO,CAAC,IAAI,EAAI,SAEnC,IAAI,CAAI,EACA,AAAC,GAAM,CAAA,EAAO,QAAlB,EACI,AAAS,WAAT,EACA,OAAO,EAAQ,OAAO,CAAC,IAAI,CAE3B,EAAQ,OAAO,CAAC,IAAI,CAAG,EAG3B,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,cAAc,EAAE,EAAE,EAAK,GAAG,CAAC,AAAA,CAAA,EAAA,EAAA,UAAS,AAAT,EAAW,IAAA,CAAQ,CACxE,EAAI,IAAI,CAAC,OAAQ,EACrB,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCvBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,GAAM,CACF,MAAA,CAAK,CACL,MAAA,CAAK,CACL,QAAA,CAAO,CACP,SAAU,CAAE,QAAA,CAAO,CAAE,OAAA,CAAM,CAAE,CAChC,CAAG,EAEA,EAAa,CAAA,EACb,EAAY,EACZ,EAAY,EAEhB,SAAS,IACL,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAI,QAAQ,CAC1B,IACA,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,YACrB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,UAAW,QAC3B,EAAQ,OAAO,CAAC,GAChB,EAAI,IAAI,CAAC,OAAQ,CAAA,GAEzB,CAEA,SAAS,EAAU,CAAK,CAAE,CAAM,EACxB,EAAI,OAAO,EACX,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,UAAW,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,UAE5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,UAAW,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAEpC,CA4DA,SAAS,IACL,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAI,QAAQ,CACxB,EAAO,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,GACf,EAAM,OAAO,WAAW,CAAG,EAAK,MAAM,CAAG,GACzC,EAAO,OAAO,UAAU,CAAG,EAAK,KAAK,CAAG,GAC9C,EAAQ,GAAG,CAAC,MAAO,GACnB,EAAQ,GAAG,CAAC,OAAQ,GACpB,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,MAAO,CAAA,EAAG,EAAI,EAAE,CAAC,EACjC,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,OAAQ,CAAA,EAAG,EAAK,EAAE,CAAC,CACvC,CAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,IAAA,IACW,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,YAE7B,IAAI,CAAK,EACL,GAAI,EAAO,CACP,EAAI,KAAK,CAAG,OACZ,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,YAClB,IAAM,EAAQ,AA7E1B,WACI,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAI,QAAQ,CAC9B,GAAI,EAEA,MADA,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAO,GACP,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,UAAW,OAC/B,EACH,IAAM,EAAQ,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,OAC5B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,kBAChB,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,SAAS,IAAI,CAAE,GACtB,EAAI,QAAQ,CAAC,KAAK,CAAG,EACrB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAO,GAEd,IAAM,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAO,sCAC7B,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAQ,EAAM,KAAK,EAC1B,EAAM,EAAQ,QAAS,GAEvB,IAAM,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAO,sCACvB,EAAQ,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAQ,EAAM,IAAI,EACjC,EAAS,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAQ,EAAM,KAAK,EAoCzC,OAnCA,EAAM,EAAO,QAAS,IAAM,EAAI,IAAI,IACpC,EAAM,EAAQ,QAAS,IAAM,EAAI,KAAK,IACtC,EAAU,EAAO,GACjB,EAAI,EAAE,CAAC,gBAAiB,IAAM,EAAU,EAAO,IAC/C,EAAI,EAAE,CAAC,cAAe,IAAM,EAAU,EAAO,IAC7C,EAAI,EAAE,CAAC,mBAAoB,IAAM,EAAU,EAAO,IAElD,EAAM,EAAO,YAAa,AAAC,IACvB,EAAa,AAAiB,IAAjB,EAAM,MAAM,CACzB,EAAY,EAAM,KAAK,CACvB,EAAY,EAAM,KAAK,AAC3B,GAEA,EAAI,EAAE,CAAC,qBAAsB,AAAC,IAC1B,GAAI,EAAY,CACZ,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,qBAChB,IAAM,EAAI,EAAM,KAAK,CAAG,EAClB,EAAI,EAAM,KAAK,CAAG,EACxB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,YAAa,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAC5D,CACJ,GAEA,EAAI,EAAE,CAAC,mBAAoB,KACvB,GAAI,EAAY,CACZ,EAAa,CAAA,EACb,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAO,qBACnB,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,GACrB,EAAQ,GAAG,CAAC,OAAQ,EAAK,IAAI,EAC7B,EAAQ,GAAG,CAAC,MAAO,EAAK,GAAG,EAC3B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,OAAQ,CAAA,EAAG,EAAK,IAAI,CAAC,EAAE,CAAC,EACxC,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,MAAO,CAAA,EAAG,EAAK,GAAG,CAAC,EAAE,CAAC,EACtC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,YAAa,KACjC,CACJ,GAEO,CACX,CACJ,IAsBkB,EAAM,EAAQ,GAAG,CAAC,OAClB,EAAO,EAAQ,GAAG,CAAC,OACrB,AAAe,CAAA,UAAf,OAAO,GAAoB,AAAgB,UAAhB,OAAO,GAClC,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,MAAO,CAAA,EAAG,EAAI,EAAE,CAAC,EACjC,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,OAAQ,CAAA,EAAG,EAAK,EAAE,CAAC,EAC/B,AAAC,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,IACd,KAGJ,IAEJ,EAAI,IAAI,CAAC,OAAQ,CAAA,EACrB,MACI,GAER,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC/HwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,GAAM,CACF,SAAU,CAAE,QAAA,CAAO,CAAE,CACxB,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,IAAK,KACD,GAAI,CACA,OAAO,EAAQ,KAAK,CAAC,eAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,AAE9D,CAAE,MAAO,EAAO,CACZ,MAAO,EACX,CACJ,EACA,IAAI,CAAG,EACH,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,kBAAmB,CAAC,IAAI,EAAE,EAAI,CAAC,CAAC,CACtD,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAc,CAAG,EACrC,GAAM,CACF,SAAU,CAAE,WAAA,CAAU,CAAE,OAAA,CAAM,CAAE,CACnC,CAAG,EAEJ,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,QACI,GAAM,CAAE,YAAA,CAAW,CAAE,CAAG,EAClB,CAAE,YAAA,CAAW,CAAE,WAAA,CAAU,CAAE,CAAG,EAC9B,EAAS,AAAe,EAAc,EAA7B,EACf,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAY,SAAU,EAAS,MACxC,EAAI,IAAI,CAAC,aAAc,EAC3B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCdwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAEhC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,SAAU,CACf,MAAA,CAAM,EAAK,IACP,AAAI,EACO,EAAQ,KAAK,CAAC,WAAW,CAAC,EAAK,GAE/B,iBAAiB,GAAS,gBAAgB,CAAC,EAG9D,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCZwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAS,CAAG,EAChC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,QAAS,CACd,IAAA,IACW,EAAI,MAAM,CAAC,eAEtB,IAAI,CAAK,EACL,EAAI,MAAM,CAAC,cAAe,EAC9B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCTwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAG,EAC/B,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,OAAQ,CACb,IAAA,IACW,EAAI,MAAM,CAAC,IAAI,CAE1B,IAAI,CAAI,EACJ,EAAI,MAAM,CAAC,IAAI,CAAG,CACtB,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCTwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAS,CAAG,EAChC,IAAM,EAAS,CAAC,OAAQ,MAAO,aAAc,gBAAgB,CAC7D,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,QAAS,CACd,IAAK,IAAM,EAAO,IAAI,CAAC,AAAC,GAAS,CAAG,CAAC,EAAK,GAAK,WAC/C,IAAI,CAAI,EACJ,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,MAAM,CAAE,IAAS,CAChD,IAAM,EAAO,CAAM,CAAC,EAAM,AACtB,CAAA,IAAS,GAAQ,CAAG,CAAC,EAAK,EAC1B,CAAA,CAAG,CAAC,EAAK,CAAG,CAAA,CADhB,CAGJ,CACJ,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCbwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAkB,CAAG,EACzC,GAAM,CAAE,OAAA,CAAM,CAAE,KAAA,CAAI,CAAE,SAAA,CAAQ,CAAE,CAAG,EAEnC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,iBAAkB,CACvB,IAAA,IACW,EAAS,MAAM,EAAE,QAAU,EAEtC,IAAI,CAAK,EACL,GAAM,CAAE,KAAA,CAAI,CAAE,CAAG,EAAI,QAAQ,CAC7B,GAAI,CAAC,EAAS,MAAM,EAAI,AAAgB,IAAhB,EAAK,MAAM,CAAQ,OAC3C,IAAM,EAAS,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAO,IAAK,GACjC,CAAA,EAAS,MAAM,CAAC,MAAM,CAAG,EACzB,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAK,MAAM,CAAE,IAAS,CAC9C,IAAM,EAAM,CAAI,CAAC,EAAM,AACvB,CAAA,EAAI,iBAAiB,CAAG,EAAI,iBAAiB,EAAI,EAAI,SAAS,CAC9D,EAAI,eAAe,CAAG,EAAI,eAAe,EAAI,EAAI,OAAO,CACxD,EAAI,SAAS,CAAG,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAI,iBAAiB,CAAG,EAAQ,EAAG,EAAI,QAAQ,EACrE,EAAI,OAAO,CAAG,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAI,eAAe,CAAG,EAAQ,EAAG,EAAI,QAAQ,CACrE,CACA,EAAI,QAAQ,CAAC,MAAM,GACnB,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,mBAAmB,EAAE,EAAE,EAAM,CAAC,CAAC,CACzD,EAAI,IAAI,CAAC,iBAAkB,EAC/B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAG,EAClC,GAAM,CACF,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,MAAA,CAAK,CACL,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,EAEA,EAAY,CAAA,CAEZ,CAAA,OAAO,qCAAqC,EAAI,EAAO,8BAA8B,CACrF,EAAM,EAAQ,0CAA2C,AAAC,IACtD,OAAQ,EAAM,YAAY,EACtB,IAAK,YACD,EAAY,CAAA,EACZ,KACJ,KAAK,gBACD,EAAY,CAAA,CAEpB,CACJ,GAEA,EAAY,CAAA,EAGhB,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,UAAW,CAChB,QACQ,GACA,EAAO,8BAA8B,GACrC,EAAI,IAAI,CAAC,YAET,EAAO,IAAI,CAAG,EAAK,GAAG,CAAC,wBAE/B,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCnCwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAG,EAClC,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,UAAW,CAChB,IAAI,CAAO,EACP,GAAM,CAAE,SAAA,CAAQ,CAAE,OAAA,CAAM,CAAE,KAAA,CAAI,CAAE,CAAG,EAC7B,EAAiB,EAAQ,IAAI,CAAC,AAAC,GAAS,EAAK,OAAO,GAAK,CAAO,CAAC,EAAE,CACzE,EAAS,MAAM,CAAC,CACZ,KAAM,UACN,SAAU,QACV,MAAO,GACP,MAAO,CACH,YAAa,MACjB,EACA,KAAM,GAAgB,MAAQ,GAC9B,SAAU,EACJ,SAAN,MAAe,IACX,MAAM,EAAI,aAAa,CAAC,EAAK,GAAG,EAChC,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAK,IAAI,CAAA,CAAE,CAClD,EAAK,IAAI,CAExB,EACJ,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCtBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAc,CAAG,EACrC,GAAM,CACF,OAAA,CAAM,CACN,OAAA,CAAM,CACN,SAAU,CAAE,UAAA,CAAS,CAAE,OAAA,CAAM,CAAE,CAClC,CAAG,EAEA,EAAQ,KACR,EAAQ,KACR,EAAU,CAAA,EACV,EAAS,CAAA,EACT,EAAU,CAAA,EAkCd,EAAO,KAAK,CACR,EACA,KACI,EAAU,CAAA,CACd,EACA,KACI,EAAU,CAAA,CACd,GAGJ,EAAI,EAAE,CAAC,SAAU,MAAO,EAAM,EAAY,KACtC,IAAM,EAAc,EAAI,QAAQ,EAAE,WAC5B,CAAE,IAAA,CAAG,CAAE,MAAA,CAAK,CAAE,CAAG,EAAO,UAAU,CACxC,GAAI,CAAC,GAAe,CAAC,EAAK,OAE1B,IAAM,EAAmB,AAAS,WAAT,GAAqB,GAAS,EAAA,QAAQ,CAE/D,GAAI,AAAS,UAAT,GAAoB,EAAkB,CAOtC,GANK,IACD,EAAU,CAAA,EACV,EAAQ,MAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,GAC3B,EAAS,CAAA,GAGT,CAAC,GAAU,CAAC,EAAS,OAEzB,IAAM,EAAQ,EAAU,WAAW,CAAG,EACtC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,UAAW,QAE7B,EAAQ,GAAK,EAAQ,EAAU,WAAW,CAC1C,AAtDZ,SAAwB,CAAQ,EAC5B,IAAM,EAAc,EAAI,QAAQ,EAAE,WAClC,GAAI,CAAC,EAAa,OAElB,GAAM,CAAE,OAAA,CAAM,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAO,UAAU,CAC5D,EAAS,EAAQ,GAAS,EAAM,YAAY,CAAG,EAC/C,EAAU,EAAS,GAAS,EAAU,CAAA,EAAO,UAAU,CAAG,EAAO,WAAU,AAAV,EAEjE,EAAW,KAAK,KAAK,CAAC,EADX,CAAA,EAAU,WAAW,CAAG,CAAzC,GAEM,EAAS,KAAK,IAAI,CAAC,EAAW,GAAU,EAE9C,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,kBAAmB,CAAC,IAAI,EAAE,EAAM,GAAG,CAAC,CAAC,CAAC,EAC5D,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAa,SAAU,CAAA,EAAG,EAAQ,EAAE,CAAC,EAC9C,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAa,QAAS,CAAA,EAAG,EAAO,EAAE,CAAC,EAC5C,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,qBAAsB,CAAC,CAAC,EAAE,AAJjC,CAAA,EAAW,GAAU,EAAS,CAAA,EAIY,EAAO,IAAI,EAAE,EAAS,EAAQ,EAAE,CAAC,EACtF,GAAY,EAAS,EACrB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,OAAQ,GACvB,EAAW,EAAU,WAAW,CAAG,EAAS,EACnD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,OAAQ,CAAA,EAAG,EAAU,WAAW,CAAG,EAAO,EAAE,CAAC,EAEnE,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAa,OAAQ,CAAA,EAAG,EAAW,EAAS,EAAE,EAAE,CAAC,CAElE,EAgC2B,GAEX,AAAC,EAAA,QAAQ,EACT,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,UAAW,QAIrC,IACA,aAAa,GACb,EAAQ,WAAW,KACf,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAa,UAAW,OACrC,EAAG,KAEX,CACJ,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAK,aAAc,CACnB,IAAA,IACW,EAAI,MAAM,CAAC,UAAU,CAEhC,IAAI,CAAU,EACN,EAAW,GAAG,EAAI,CAAC,EAAI,MAAM,CAAC,MAAM,GACpC,EAAI,MAAM,CAAC,UAAU,CAAG,EAnFhC,aAAa,GACb,EAAQ,KACR,EAAQ,KACR,EAAU,CAAA,EACV,EAAS,CAAA,EAkFT,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCtGwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAG,EAClC,GAAM,CACF,OAAA,CAAM,CACN,QAAA,CAAO,CACP,SAAU,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CAChC,CAAG,EAEJ,IAAK,IAAM,KAAO,EAAO,aAAa,CAClC,EAAI,IAAI,CAAC,EAAK,EAAO,aAAa,CAAC,EAAI,CAGvC,CAAA,EAAO,KAAK,EACZ,CAAA,EAAI,KAAK,CAAG,EAAO,KAAK,AAAL,EAGnB,EAAO,MAAM,EACb,CAAA,EAAO,MAAM,CAAG,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAO,MAAM,CAAE,EAAG,EAD5C,EAIA,IAAM,EAAgB,EAAQ,GAAG,CAAC,UAsBlC,IAAK,IAAM,IArBP,AAAyB,UAAzB,OAAO,GACP,CAAA,EAAO,MAAM,CAAG,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAe,EAAG,EAD5C,EAII,EAAO,MAAM,EACb,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,kBAAmB,CAAC,IAAI,EAAE,EAAO,MAAM,CAAC,CAAC,CAAC,EAG5D,EAAO,QAAQ,EACf,CAAA,EAAO,QAAQ,CAAG,EAAO,QAAQ,AAAR,EAGzB,EAAO,WAAW,GAClB,EAAO,WAAW,CAAG,CAAA,EACrB,CAAM,CAAC,qBAAqB,CAAG,CAAA,GAG/B,EAAO,KAAK,EACZ,CAAA,EAAO,MAAM,CAAC,cAAc,CAAG,EAAO,KAAK,AAAL,EAGxB,EAAO,MAAM,CAC3B,EAAI,MAAM,CAAC,EAAK,EAAO,MAAM,CAAC,EAAI,CAGtC,CAAA,EAAI,GAAG,CAAG,EAAO,GAAG,AACxB,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC7CwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAHxB,IAAA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,EACjC,GAAM,CACF,KAAA,CAAI,CACJ,OAAA,CAAM,CACN,OAAA,CAAM,CACN,YAAA,CAAW,CACX,MAAA,CAAK,CACL,SAAU,CAAE,QAAA,CAAO,CAAE,OAAA,CAAM,CAAE,QAAA,CAAO,CAAE,CACzC,CAAG,EAEA,EAAgB,EAEpB,IAAK,IAAI,EAAQ,EAAG,EAAQ,AAAA,EAAA,OAAK,CAAE,MAAM,CAAC,MAAM,CAAE,IAC9C,EAAM,EAAQ,AAAA,EAAA,OAAK,CAAE,MAAM,CAAC,EAAM,CAAE,AAAC,IACjC,EAAI,IAAI,CAAC,CAAC,MAAM,EAAE,EAAM,IAAI,CAAA,CAAE,CAAE,EACpC,GAOJ,EAAI,EAAE,CAAC,gBAAiB,KACpB,EAAgB,EAChB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,CACvB,GAEA,EAAI,IAAI,CAAC,gBAAiB,KACtB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,EACpB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAChB,EAAI,OAAO,CAAG,CAAA,EACd,EAAI,IAAI,CAAC,QACb,GAcA,EAAI,EAAE,CAAC,cAAe,KACd,EAAO,IAAI,EACX,EAAI,IAAI,CAAG,EACX,EAAI,IAAI,GACR,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,EACpB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,IAEhB,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,EACpB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAExB,GAEA,EAAI,EAAE,CAAC,cAAe,MAAO,IACrB,EAAgB,EAAY,kBAAkB,EAC9C,MAAM,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAY,oBAAoB,EAC5C,GAAiB,EACjB,EAAI,GAAG,CAAG,EAAO,GAAG,CACpB,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,aAAa,EAAE,EAAE,EAAA,CAAe,CAC1D,EAAI,IAAI,CAAC,QAAS,EAAO,KAEzB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAChB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,EACpB,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,aAClB,MAAM,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAY,oBAAoB,EAC5C,EAAO,IAAI,CAAG,EAAK,GAAG,CAAC,qBAE/B,GAMA,EAAI,EAAE,CAAC,uBAAwB,KAC3B,EAAI,IAAI,CAAC,UACL,EAAA,QAAQ,GACR,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,EACpB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAExB,GAEA,EAAI,EAAE,CAAC,kBAAmB,KACtB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAChB,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,CACxB,GAEA,EAAI,EAAE,CAAC,cAAe,KAClB,EAAI,QAAQ,CAAC,IAAI,CAAG,CAAA,EACpB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,CACpB,GAEA,EAAI,EAAE,CAAC,aAAc,KACjB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAChB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,UAAW,OACjC,GAEA,EAAI,EAAE,CAAC,gBAAiB,KACpB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,CACpB,GAEA,EAAI,EAAE,CAAC,iBAAkB,KACjB,EAAI,OAAO,EACX,CAAA,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,CADvB,CAGJ,GAMA,EAAI,EAAE,CAAC,eAAgB,KACnB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,CACpB,GAEA,EAAI,EAAE,CAAC,gBAAiB,KACpB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,CACpB,GAUA,EAAI,EAAE,CAAC,mBAAoB,KACvB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,CACpB,GAMA,EAAI,EAAE,CAAC,gBAAiB,KACpB,EAAI,OAAO,CAAC,IAAI,CAAG,CAAA,EACnB,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,CACpB,EACJ,C,E,C,Y,Q,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxJA,IAAA,EAAA,EAAA,sB,E,E,c,C,GACA,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,mB,E,E,c,C,GACA,EAAA,EAAA,S,E,E,c,C,GACA,EAAA,EAAA,kB,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,WAae,OAAM,UAAgB,EAAA,OAAS,CAC1C,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GAEN,IAAI,CAAC,OAAO,CAAG,CAAA,EACf,IAAI,CAAC,IAAI,CAAG,UACZ,IAAI,CAAC,KAAK,CAAG,KAAK,GAAG,GAErB,GAAM,CAAE,YAAA,CAAW,CAAE,CAAG,EAClB,CAAE,QAAA,CAAO,CAAE,QAAA,CAAO,CAAE,CAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAE9C,EAAI,EAAE,CAAC,YAAa,KACZ,AAAC,EAAA,QAAO,EACR,CAAA,IAAI,CAAC,IAAI,CAAG,CAAA,CADhB,CAGJ,GAEA,EAAI,EAAE,CAAC,QAAS,KACR,EAAA,QAAQ,CACR,IAAI,CAAC,MAAM,GAEX,IAAI,CAAC,IAAI,CAAG,CAAA,CAEpB,GAEA,EAAI,EAAE,CAAC,qBAAsB,AAAC,IAC1B,IAAI,CAAC,OAAO,CAAG,AAAA,CAAA,EAAA,EAAA,gBAAe,AAAf,EAAiB,EAAO,EAC3C,GAEA,EAAI,EAAE,CAAC,mBAAoB,KAEnB,CAAC,EAAI,OAAO,CAAC,IAAI,EACjB,CAAC,IAAI,CAAC,OAAO,EACb,CAAC,EAAI,OAAO,EACZ,EAAI,OAAO,EACX,IAAI,CAAC,IAAI,EACT,KAAK,GAAG,GAAK,IAAI,CAAC,KAAK,EAAI,EAAY,iBAAiB,EAExD,CAAA,IAAI,CAAC,IAAI,CAAG,CAAA,CARhB,CAUJ,GAEA,EAAI,EAAE,CAAC,UAAW,AAAC,IACX,GACA,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,mBACrB,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,aAClB,IAAI,CAAC,KAAK,CAAG,KAAK,GAAG,KAErB,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,mBAClB,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,aAE7B,GAEA,IAAI,CAAC,IAAI,EACb,CAEA,MAAO,CACH,GAAM,CAAE,OAAA,CAAM,CAAE,CAAG,IAAI,CAAC,GAAG,AAEvB,AAAC,CAAA,EAAO,MAAM,EACd,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,CACL,KAAM,WACN,SAAU,MACV,MAAO,EACX,IAIR,IAAI,CAAC,GAAG,CAAC,CACL,KAAM,aACN,SAAU,MACV,MAAO,EACX,GAEA,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAW,AAAX,EAAa,CACT,KAAM,eACN,SAAU,OACV,MAAO,EACX,IAGJ,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAK,AAAL,EAAO,CACH,KAAM,SACN,SAAU,OACV,MAAO,EACX,IAGA,AAAC,EAAO,MAAM,EACd,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAG,AAAH,EAAK,CACD,KAAM,OACN,SAAU,OACV,MAAO,EACX,IAIJ,EAAO,OAAO,CAAC,MAAM,EACrB,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,IAAQ,IAAI,CAAC,KACT,IAAI,CAAC,GAAG,CAAC,OAAO,CAAG,EAAO,OAAO,AACrC,GAGA,EAAO,UAAU,EAAI,CAAC,EAAA,QAAQ,EAC9B,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAW,CACP,KAAM,aACN,SAAU,QACV,MAAO,EACX,IAIJ,EAAO,OAAO,EACd,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,CACJ,KAAM,UACN,SAAU,QACV,MAAO,EACX,IAIJ,EAAO,GAAG,EACV,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAG,AAAH,EAAI,CACA,KAAM,MACN,SAAU,QACV,MAAO,EACX,IAIJ,EAAO,OAAO,EAAI,OAAO,qCAAqC,EAC9D,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,CACJ,KAAM,UACN,SAAU,QACV,MAAO,EACX,IAIJ,EAAO,aAAa,EACpB,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAa,AAAb,EAAc,CACV,KAAM,gBACN,SAAU,QACV,MAAO,EACX,IAIJ,EAAO,UAAU,EACjB,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAU,AAAV,EAAW,CACP,KAAM,aACN,SAAU,QACV,MAAO,EACX,IAIR,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,QAAQ,CAAC,MAAM,CAAE,IAChD,IAAI,CAAC,GAAG,CAAC,EAAO,QAAQ,CAAC,EAAM,CAEvC,CAEA,IAAI,CAAS,CAAE,CACX,IAAM,EAAS,AAAqB,YAArB,OAAO,EAA2B,EAAU,IAAI,CAAC,GAAG,EAAI,EACjE,CAAE,UAAA,CAAS,CAAE,cAAA,CAAa,CAAE,eAAA,CAAc,CAAE,CAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAEtE,OAAQ,EAAO,QAAQ,EACnB,IAAK,MACD,IAAI,CAAC,OAAO,CAAG,EACf,KACJ,KAAK,OACD,IAAI,CAAC,OAAO,CAAG,EACf,KACJ,KAAK,QACD,IAAI,CAAC,OAAO,CAAG,EACf,KACJ,SACI,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,CAAA,EAAO,6DAE3B,CAEA,KAAK,CAAC,IAAI,EACd,CAEA,MAAM,CAAM,CAAE,CACV,EAAO,cAAc,CAAC,SAAS,CAAG,EAAO,IAAI,CAC7C,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,eAAe,CAAC,MAAM,CAAE,IAAS,CAChE,IAAM,EAAO,EAAO,eAAe,CAAC,EAAM,AAC1C,CAAA,EAAK,OAAO,CAAG,IAAS,EACpB,EAAK,OAAO,EACZ,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAK,aAAa,CAAE,cAEzC,CACJ,CAEA,SAAS,CAAM,CAAE,CAAI,CAAE,CAAM,CAAE,CAC3B,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAEjC,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAM,wBACf,IAAM,EAAS,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,OAC7B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAQ,sBACjB,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAQ,EAAO,IAAI,EAC1B,EAAK,SAAS,CAAG,GACjB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAM,GAEb,IAAM,EAAQ,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,OAC5B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,qBAChB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAM,GAEb,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,QAAQ,CAAC,MAAM,CAAE,IAAS,CACzD,IAAM,EAAO,EAAO,QAAQ,CAAC,EAAM,CAC7B,EAAQ,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,OAC5B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAO,qBACZ,EAAK,OAAO,EAAE,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,eAClC,EAAM,OAAO,CAAC,KAAK,CAAG,EACtB,EAAM,OAAO,CAAC,KAAK,CAAG,EAAK,KAAK,CAChC,EAAM,SAAS,CAAG,EAAK,IAAI,CAC3B,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAO,GAEd,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAM,kBAAmB,CACzB,IAAK,IAAM,EAAO,QAAQ,AAC9B,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAM,gBAAiB,CACvB,IAAK,IAAM,CACf,GAEA,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,EAAM,iBAAkB,CACxB,IAAK,IAAM,CACf,EACJ,CAEA,IAAM,EAAQ,EAAM,EAAO,QAAS,MAAO,IACvC,IAAM,EAAO,EAAM,YAAY,IAAM,EAAE,CACjC,EAAO,EAAO,QAAQ,CAAC,IAAI,CAC7B,AAAC,GAAS,EAAK,aAAa,GAAK,EAAK,IAAI,CAAC,AAAC,GAAU,EAAK,aAAa,GAAK,IAEjF,IAAI,CAAC,KAAK,CAAC,GACP,EAAO,QAAQ,EACf,CAAA,EAAO,SAAS,CAAG,MAAM,EAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,EAAM,EAAK,aAAa,CAAE,EADtF,CAGJ,GAEA,EAAO,IAAI,CAAC,EAChB,CACJ,CA/PqB,EAAA,OAAA,CAAA,C,E,C,qB,Q,e,Q,kB,Q,Q,Q,iB,Q,a,Q,S,Q,W,Q,Y,Q,e,Q,Y,Q,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxBrB,IAAA,EAAA,EAAA,SACA,EAAA,EAAA,WACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,YAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAI,CAAC,EAAE,CAAG,EACV,IAAI,CAAC,GAAG,CAAG,EACX,IAAI,CAAC,KAAK,CAAG,IAAI,IACjB,IAAI,CAAC,GAAG,CAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAC7B,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EACnC,IAAI,CAAC,MAAM,CAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CACvC,CAEA,IAAI,MAAO,CACP,MAAO,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACtE,CAEA,IAAI,KAAK,CAAK,CAAE,CACZ,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAC/B,EAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CACrC,EACA,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,GAElB,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,GAEzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,EAC7B,CAEA,QAAS,CACL,IAAI,CAAC,IAAI,CAAG,CAAC,IAAI,CAAC,IAAI,AAC1B,CAEA,IAAI,CAAS,CAAE,CACX,IAAM,EAAS,AAAqB,YAArB,OAAO,EAA2B,EAAU,IAAI,CAAC,GAAG,EAAI,EAGvE,GAFA,EAAO,IAAI,CAAG,EAAO,IAAI,EAAI,GAC7B,AAAA,CAAA,EAAA,EAAA,OAAQ,AAAR,EAAU,EAAQ,EAAA,eAAc,EAC5B,CAAC,IAAI,CAAC,OAAO,EAAI,CAAC,IAAI,CAAC,IAAI,EAAI,EAAO,OAAO,CAAE,OACnD,IAAM,EAAO,EAAO,IAAI,EAAI,CAAA,EAAG,IAAI,CAAC,IAAI,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,CAAE,CAC9C,EAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAC5B,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,CAAC,EAAM,CAAC,uBAAuB,EAAE,EAAK,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAE1E,IAAI,CAAC,EAAE,EAAI,EACX,IAAM,EAAO,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,OAC3B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA,CAAE,EACjC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAA,CAAM,EAEzC,IAAM,EAAS,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAC/C,CAAA,EAAK,OAAO,CAAC,KAAK,CAAG,EAAO,KAAK,EAAI,IAAI,CAAC,EAAE,CAC5C,IAAM,EAAY,EAAO,IAAI,CAAC,AAAC,GAAS,OAAO,EAAK,OAAO,CAAC,KAAK,GAAK,OAAO,EAAK,OAAO,CAAC,KAAK,GAC3F,EACA,EAAU,qBAAqB,CAAC,cAAe,GAE/C,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,IAAI,CAAC,OAAO,CAAE,GAGrB,EAAO,IAAI,EACX,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAM,EAAO,IAAI,EAGxB,EAAO,KAAK,EACZ,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAM,EAAO,KAAK,EAG5B,EAAO,OAAO,EACd,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAM,EAAO,OAAO,EAGhC,IAAM,EAAS,EAAE,CACjB,GAAI,EAAO,KAAK,CAAE,CACd,IAAM,EAAe,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAM,QAAS,AAAC,IACvD,EAAM,cAAc,GACpB,EAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,EACtC,GACA,EAAO,IAAI,CAAC,EAChB,CAaA,OAXI,EAAO,QAAQ,EAAI,CAAC,OAAQ,QAAQ,CAAC,QAAQ,CAAC,EAAO,QAAQ,GAC7D,IAAI,CAAC,QAAQ,CAAC,EAAQ,EAAM,GAGhC,IAAI,CAAC,EAAK,CAAG,EACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAM,CAAE,KAAA,EAAM,OAAA,EAAQ,OAAA,CAAO,GAExC,EAAO,OAAO,EACd,EAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,GAG3B,CACX,CAEA,OAAO,CAAI,CAAE,CACT,IAAM,EAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAC5B,AAAA,CAAA,EAAA,EAAA,WAAU,AAAV,EAAY,EAAM,CAAC,YAAY,EAAE,EAAK,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAE5D,EAAK,MAAM,CAAC,aAAa,EACzB,EAAK,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,EAAK,IAAI,EAGtD,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAK,MAAM,CAAC,MAAM,CAAE,IAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAK,MAAM,CAAC,EAAM,EAG7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAClB,OAAO,IAAI,CAAC,EAAK,CACjB,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAK,IAAI,CACpB,CAEA,OAAO,CAAM,CAAE,CACX,IAAM,EAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAO,IAAI,EAKvC,OAJI,IACA,EAAS,OAAO,MAAM,CAAC,EAAK,MAAM,CAAE,GACpC,IAAI,CAAC,MAAM,CAAC,EAAO,IAAI,GAEpB,IAAI,CAAC,GAAG,CAAC,EACpB,CACJ,C,E,C,Q,Q,U,Q,mB,Q,Y,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCnHwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAM,EACrC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,EAAI,IAAI,CAAC,GAAG,CAAC,cACtB,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,KAAA,CAAI,CAAE,CAAG,EAEzB,EAAgB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,YAAY,EACnD,EAAiB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,aAAa,EAC3D,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAgB,UAAW,QAEpC,EAAM,EAAU,QAAS,KACrB,EAAI,UAAU,CAAG,CAAC,EAAI,UAAU,AACpC,GAEA,EAAI,EAAE,CAAC,aAAc,AAAC,IACd,GACA,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAU,EAAK,GAAG,CAAC,oBAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAe,UAAW,QACnC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAgB,UAAW,iBAEpC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAU,EAAK,GAAG,CAAC,eAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAe,UAAW,eACnC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAgB,UAAW,QAE5C,EACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC5BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAc,CAAM,EACxC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,EAAI,IAAI,CAAC,GAAG,CAAC,kBACtB,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,KAAA,CAAI,CAAE,CAAG,EAEzB,EAAmB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,eAAe,EACzD,EAAoB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,gBAAgB,EACjE,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAmB,UAAW,QAEvC,EAAM,EAAU,QAAS,KACrB,EAAI,aAAa,CAAG,CAAC,EAAI,aAAa,AAC1C,GAEA,EAAI,EAAE,CAAC,gBAAiB,AAAC,IACjB,GACA,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAU,EAAK,GAAG,CAAC,wBAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAkB,UAAW,QACtC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAmB,UAAW,iBAEvC,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAU,EAAK,GAAG,CAAC,mBAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAkB,UAAW,eACtC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAmB,UAAW,QAE/C,EACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC5BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAI,CAAM,EAC9B,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,EAAI,IAAI,CAAC,GAAG,CAAC,YACtB,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,KAAA,CAAI,CAAE,CAAG,EAE/B,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAU,EAAM,GAAG,EAE1B,EAAM,EAAU,QAAS,KACrB,EAAI,GAAG,CAAG,CAAC,EAAI,GAAG,AACtB,GAEA,EAAI,EAAE,CAAC,MAAO,AAAC,IACX,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAU,EAAK,GAAG,CAAC,EAAQ,gBAAkB,YACzD,EACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAa,CAAM,EACvC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,KAAA,CAAI,CAAE,CAAG,EAEzB,EAAQ,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,IAAI,EACnC,EAAS,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,KAAK,EAY3C,SAAS,IACL,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,UAAW,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,OAChC,CAEA,SAAS,IACL,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAO,UAAW,QAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,OAChC,CAnBA,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAO,EAAK,GAAG,CAAC,SACxB,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAQ,EAAK,GAAG,CAAC,UAEzB,EAAM,EAAO,QAAS,KAClB,EAAI,IAAI,EACZ,GAEA,EAAM,EAAQ,QAAS,KACnB,EAAI,KAAK,EACb,GAYI,EAAI,OAAO,CACX,IAEA,IAGJ,EAAI,EAAE,CAAC,gBAAiB,KACpB,GACJ,GAEA,EAAI,EAAE,CAAC,cAAe,KAClB,GACJ,EACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC5CA,EAAA,MAAA,CAAA,EAAA,kBAAA,IAAgB,GAWhB,EAAA,MAAA,CAAA,EAAA,iBAAA,IAAgB,GAaQ,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GA1BxB,IAAA,EAAA,EAAA,YAEO,SAAS,EAAgB,CAAG,CAAE,CAAK,EACtC,GAAM,CAAE,UAAA,CAAS,CAAE,CAAG,EAAI,QAAQ,CAC5B,CAAE,KAAA,CAAI,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GACnB,EAAY,AAAA,EAAA,QAAO,CAAI,EAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAG,EAAM,OAAO,CAC/D,EAAQ,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAY,EAAM,EAAG,EAAU,WAAW,EACxD,EAAS,EAAS,EAAU,WAAW,CAAI,EAAI,QAAQ,CACvD,EAAO,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,GACpB,EAAa,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAQ,EAAU,WAAW,CAAE,EAAG,GAC3D,MAAO,CAAE,OAAA,EAAQ,KAAA,EAAM,MAAA,EAAO,WAAA,CAAW,CAC7C,CAEO,SAAS,EAAe,CAAG,CAAE,CAAK,EACrC,GAAI,EAAI,QAAQ,CAAE,CACd,IAAM,EAAa,EAAM,OAAO,CAAC,EAAE,CAAC,OAAO,CAAG,EAAI,MAAM,CAClD,EAAS,EAAa,EAAI,QAAQ,CACxC,EAAI,IAAI,CAAC,SAAU,SAAU,EAAY,GACzC,EAAI,IAAI,CAAG,CACf,KAAO,CACH,GAAM,CAAE,OAAA,CAAM,CAAE,WAAA,CAAU,CAAE,CAAG,EAAgB,EAAK,GACpD,EAAI,IAAI,CAAC,SAAU,SAAU,EAAY,GACzC,EAAI,IAAI,CAAG,CACf,CACJ,CAEe,SAAS,EAAS,CAAO,EACpC,OAAO,AAAC,IACJ,GAAM,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAEjC,MAAO,CACH,GAAG,CAAO,CACV,KAAM;A;A;A;A;A;A;A;A;AASN,YAAA,CAAC,CACD,QAAS,AAAC,IACN,IAAI,EAAW,KACX,EAAa,CAAA,EAEX,EAAS,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,sBAAuB,GACtC,EAAU,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,uBAAwB,GACxC,EAAU,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,uBAAwB,GACxC,EAAa,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,0BAA2B,GAC9C,EAAa,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,0BAA2B,GAC9C,EAAO,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,oBAAqB,GAsBxC,SAAS,EAAS,CAAK,CAAE,CAAK,EAC1B,GAAM,CAAE,MAAA,CAAK,CAAE,KAAA,CAAI,CAAE,CAAG,GAAS,EAAgB,EAAK,EACtD,CAAA,EAAK,SAAS,CAAG,EACjB,IAAM,EAAW,EAAK,WAAW,AAC7B,CAAA,GAAS,EAAW,EACpB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,OAAQ,GAChB,EAAQ,EAAS,WAAW,CAAG,EAAW,EACjD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,OAAQ,CAAA,EAAG,EAAS,WAAW,CAAG,EAAS,EAAE,CAAC,EAE7D,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAM,OAAQ,CAAA,EAAG,EAAQ,EAAW,EAAE,EAAE,CAAC,CAE1D,CA/BI,EAAM,SAAS,CACf,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAY,EAAM,SAAS,EAElC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAY,kBAAmB,oBAoE5C,EAAI,EAAE,CAAC,SA5BP,SAAgB,CAAI,CAAE,CAAU,CAAE,CAAK,EACnC,IAAM,EAAmB,AAAS,WAAT,GAAqB,GAAS,EAAA,QAAQ,AAE3D,AAAS,CAAA,WAAT,GACA,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,QAAS,CAAA,EAAG,AAAa,IAAb,EAAiB,CAAC,CAAC,EAGjD,AAAS,UAAT,GACA,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAQ,QAAS,CAAA,EAAG,AAAa,IAAb,EAAiB,CAAC,CAAC,EAGvC,WAAT,IACA,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,QAAS,CAAA,EAAG,AAAa,IAAb,EAAiB,CAAC,CAAC,EACjD,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAY,OAAQ,CAAA,EAAG,AAAa,IAAb,EAAiB,CAAC,CAAC,GAGnD,IACA,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,UAAW,QAG1B,EAAS,EAAO,CAAE,MAFJ,EAAS,WAAW,CAAG,EAEZ,KADZ,AAAA,CAAA,EAAA,EAAA,YAAY,AAAZ,EAAa,EAAa,EAAI,QAAQ,CACrB,GAC9B,aAAa,GACb,EAAW,WAAW,KAClB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,UAAW,OAC9B,EAAG,KAEX,GAGA,EAAI,EAAE,CAAC,uBAvCP,WACI,EAAW,SAAS,CAAG,GACvB,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,SAAS,CAAC,MAAM,CAAE,IAAS,CAC1D,IAAM,EAAO,EAAO,SAAS,CAAC,EAAM,CAC9B,EAAO,AAAC,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAK,IAAI,CAAE,EAAG,EAAI,QAAQ,EAAI,EAAI,QAAQ,CAAI,IAC5D,EAAO,CAAC,iBAAiB,EAAE,EAAK,IAAI,CAAC,aAAa,EAAE,EAAK,IAAI,CAAC,eAAe,EAAE,EAAK,UAAU,CAAC,CACrG,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAY,EACvB,CACJ,GAiCI,EAAI,WAAW,CAAC,OAAO,CACvB,EAAI,EAAE,CAAC,MAAO,KACV,EAAI,IAAI,CAAC,SAAU,SAAU,EAAI,MAAM,EACvC,EAAI,IAAI,CAAC,SAAU,SAAU,EAAI,MAAM,CAC3C,IAEA,EAAI,EAAE,CAAC,mBAAoB,KACvB,EAAI,IAAI,CAAC,SAAU,SAAU,EAAI,MAAM,CAC3C,GAEA,EAAI,EAAE,CAAC,iBAAkB,KACrB,EAAI,IAAI,CAAC,SAAU,SAAU,EAAI,MAAM,CAC3C,GAEA,EAAI,EAAE,CAAC,cAAe,KAClB,EAAI,IAAI,CAAC,SAAU,SAAU,EACjC,IAGJ,EAAI,IAAI,CAAC,SAAU,SAAU,EAAI,MAAM,EAAI,GAEtC,EAAA,QAAO,GACR,EAAM,EAAU,QAAS,AAAC,IAClB,EAAM,MAAM,GAAK,GACjB,EAAe,EAAK,EAE5B,GAEA,EAAM,EAAU,YAAa,AAAC,IAC1B,GAAM,CAAE,WAAA,CAAU,CAAE,CAAG,EAAgB,EAAK,GAG5C,GAFA,EAAI,IAAI,CAAC,SAAU,QAAS,EAAY,GACxC,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,UAAW,QACtB,AAAA,CAAA,EAAA,EAAA,gBAAe,AAAf,EAAiB,EAAO,GACxB,CApGR,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAgB,EAoGZ,GAnGhB,CAAE,KAAA,CAAI,CAAE,CAAG,AAmGK,EAnGC,MAAM,CAAC,OAAO,AACrC,CAAA,EAAK,SAAS,CAAG,EACjB,IAAM,EAAW,EAAK,WAAW,AAC7B,CAAA,GAAS,EAAW,EACpB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,OAAQ,GAChB,EAAQ,EAAS,WAAW,CAAG,EAAW,EACjD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,OAAQ,CAAA,EAAG,EAAS,WAAW,CAAG,EAAS,EAAE,CAAC,EAE7D,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAM,OAAQ,CAAA,EAAG,EAAQ,EAAW,EAAE,EAAE,CAAC,CA0FlD,MAGI,EAAS,EAEjB,GAEA,EAAM,EAAU,aAAc,AAAC,IAC3B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAM,UAAW,QAC1B,EAAI,IAAI,CAAC,SAAU,QAAS,EAAG,EACnC,GAEA,EAAM,EAAU,YAAa,AAAC,IAC1B,EAAa,AAAiB,IAAjB,EAAM,MAAM,AAC7B,GAEA,EAAI,EAAE,CAAC,qBAAsB,AAAC,IAC1B,GAAI,EAAY,CACZ,GAAM,CAAE,OAAA,CAAM,CAAE,WAAA,CAAU,CAAE,CAAG,EAAgB,EAAK,GACpD,EAAI,IAAI,CAAC,SAAU,SAAU,EAAY,GACzC,EAAI,IAAI,CAAG,CACf,CACJ,GAEA,EAAI,EAAE,CAAC,mBAAoB,KACnB,GACA,CAAA,EAAa,CAAA,CADjB,CAGJ,GAER,CACJ,CACJ,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC9LwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAK,CAAM,EAC/B,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,MAAO,AAAA,EAAA,QAAO,CACR,CACI,SAAU,OACV,QAAS,OACb,EACA,CACI,OAAQ,OACR,QAAS,QACb,EACN,QAAS,AAAC,IACN,SAAS,IACL,IAAM,EAAU,CAAA,EAAG,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAI,WAAW,EAAE,GAAG,EAAE,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAI,QAAQ,EAAA,CAAG,AAC9E,CAAA,IAAY,EAAS,SAAS,EAC9B,CAAA,EAAS,SAAS,CAAG,CADzB,CAGJ,CAEA,IAEA,IAAM,EAAS,CAAC,uBAAwB,mBAAoB,iBAAiB,CAC7E,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,MAAM,CAAE,IACvC,EAAI,EAAE,CAAC,CAAM,CAAC,EAAM,CAAE,EAE9B,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC5BwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAO,CAAM,EACjC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,CAAG,EAEnB,EAAU,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,MAAM,EACvC,EAAS,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAU,EAAM,WAAW,EAC3C,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAU,wCAC1B,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAQ,wCACxB,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAQ,sCACxB,EAAU,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAQ,yCACzB,EAAU,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,yCAC1B,EAAU,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,yCAC1B,EAAa,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,4CAEnC,SAAS,EAAmB,CAAK,EAC7B,GAAM,CAAE,IAAA,CAAG,CAAE,OAAA,CAAM,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,GAChC,OAAO,EAAI,AAAC,CAAA,EAAM,OAAO,CAAG,CAAA,EAAO,CACvC,CAEA,SAAS,IACL,GAAI,EAAI,KAAK,EAAI,AAAe,IAAf,EAAI,MAAM,CACvB,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,UAAW,QAC7B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAY,MAAO,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,MAAO,QACzB,EAAO,SAAS,CAAG,MAChB,CACH,IAAM,EAAa,AAAa,IAAb,EAAI,MAAM,CAC7B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAS,UAAW,QAC7B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAY,MAAO,CAAA,EAAG,IAAM,EAAW,CAAC,CAAC,EAClD,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,MAAO,CAAA,EAAG,IAAM,EAAW,CAAC,CAAC,EAC/C,EAAO,SAAS,CAAG,KAAK,KAAK,CAAC,EAClC,CACJ,CAaA,GAXA,IACA,EAAI,EAAE,CAAC,qBAAsB,GAE7B,EAAM,EAAS,QAAS,KACpB,EAAI,KAAK,CAAG,CAAA,CAChB,GAEA,EAAM,EAAQ,QAAS,KACnB,EAAI,KAAK,CAAG,CAAA,CAChB,GAEI,EAAA,QAAQ,CACR,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,YACzB,CACH,IAAI,EAAa,CAAA,EAEjB,EAAM,EAAS,YAAa,AAAC,IACzB,EAAa,AAAiB,IAAjB,EAAM,MAAM,CACzB,EAAI,MAAM,CAAG,EAAmB,EACpC,GAEA,EAAI,EAAE,CAAC,qBAAsB,AAAC,IACtB,IACA,EAAI,KAAK,CAAG,CAAA,EACZ,EAAI,MAAM,CAAG,EAAmB,GAExC,GAEA,EAAI,EAAE,CAAC,mBAAoB,KACnB,GACA,CAAA,EAAa,CAAA,CADjB,CAGJ,EACJ,CACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC1EwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAM,EAClC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,EAAI,IAAI,CAAC,GAAG,CAAC,gBACtB,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,KAAA,CAAI,CAAE,CAAG,EAE/B,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAU,EAAM,OAAO,EAE9B,EAAM,EAAU,QAAS,KACrB,EAAI,OAAO,CAAC,MAAM,GAClB,EAAI,OAAO,CAAC,MAAM,EACtB,GAEA,EAAI,EAAE,CAAC,UAAW,AAAC,IACf,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAQ,EAAU,EAAK,GAAG,CAAC,EAAQ,eAAiB,gBACxD,EACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCnBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAM,EACrC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,EAAI,IAAI,CAAC,GAAG,CAAC,cACtB,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,CAAG,EAEzB,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAU,EAAM,UAAU,EACjC,EAAM,EAAU,QAAS,KACrB,EAAI,UAAU,EAClB,EACJ,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCbwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAQ,CAAM,EAClC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,QAAS,EAAI,IAAI,CAAC,GAAG,CAAC,WACtB,QAAS,AAAC,IACN,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,CAAG,EACzB,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAU,EAAM,OAAO,EAC9B,EAAM,EAAU,QAAS,IAAM,EAAI,OAAO,GAC9C,CACJ,CAAA,CACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCZA,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,sB,E,E,c,C,GACA,EAAA,EAAA,kB,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,U,E,E,c,C,GACA,EAAA,EAAA,a,E,E,c,C,GACA,EAAA,EAAA,W,E,E,c,C,EAEe,OAAM,UAAoB,EAAA,OAAS,CAC9C,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GAEN,IAAI,CAAC,IAAI,CAAG,cACZ,IAAI,CAAC,OAAO,CAAG,EAAI,QAAQ,CAAC,YAAY,CAEpC,AAAC,EAAA,QAAQ,EACT,IAAI,CAAC,IAAI,EAEjB,CAEA,MAAO,CACH,GAAM,CACF,OAAA,CAAM,CACN,MAAA,CAAK,CACL,SAAU,CAAE,QAAA,CAAO,CAAE,aAAA,CAAY,CAAE,CACtC,CAAG,IAAI,CAAC,GAAG,AAER,CAAA,EAAO,YAAY,EACnB,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAY,AAAZ,EAAa,CACT,KAAM,eACN,MAAO,EACX,IAIJ,EAAO,WAAW,EAClB,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAW,AAAX,EAAY,CACR,KAAM,cACN,MAAO,EACX,IAIJ,EAAO,IAAI,EACX,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAI,AAAJ,EAAK,CACD,KAAM,OACN,MAAO,EACX,IAIR,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAG,AAAH,EAAK,CACD,KAAM,OACN,MAAO,EACX,IAGJ,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,CACJ,KAAM,UACN,MAAO,EACX,IAGJ,IAAI,CAAC,GAAG,CACJ,AAAA,CAAA,EAAA,EAAA,OAAI,AAAJ,EAAM,CACF,KAAM,QACN,MAAO,EACX,IAGJ,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,WAAW,CAAC,MAAM,CAAE,IACnD,IAAI,CAAC,GAAG,CAAC,EAAO,WAAW,CAAC,EAAM,EAGtC,EAAM,EAAS,cAAe,AAAC,IAC3B,GAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAE,OACvC,EAAM,cAAc,GAEpB,IAAI,CAAC,IAAI,CAAG,CAAA,EAEZ,IAAM,EAAS,EAAM,OAAO,CACtB,EAAS,EAAM,OAAO,CACtB,CAAE,OAAQ,CAAO,CAAE,MAAO,CAAM,CAAE,KAAM,CAAK,CAAE,IAAK,CAAI,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,GACrE,CAAE,OAAQ,CAAO,CAAE,MAAO,CAAM,CAAE,CAAG,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,GAC/C,EAAW,EAAS,EACpB,EAAU,EAAS,CAEnB,CAAA,EAAS,EAAS,EAAQ,GAC1B,CAAA,EAAW,EAAS,CADxB,EAII,EAAS,EAAU,EAAO,GAC1B,CAAA,EAAU,EAAU,CADxB,EAIA,AAAA,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,EAAc,CACpB,IAAK,CAAA,EAAG,EAAQ,EAAE,CAAC,CACnB,KAAM,CAAA,EAAG,EAAS,EAAE,CAAC,AACzB,EACJ,GAEA,EAAM,EAAS,QAAS,AAAC,IACjB,AAAC,AAAA,CAAA,EAAA,EAAA,gBAAgB,AAAhB,EAAiB,EAAO,IACzB,CAAA,IAAI,CAAC,IAAI,CAAG,CAAA,CADhB,CAGJ,GAEA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAQ,KAChB,IAAI,CAAC,IAAI,CAAG,CAAA,CAChB,EACJ,CACJ,CA5GqB,EAAA,OAAA,CAAA,C,E,C,W,Q,qB,Q,iB,Q,gB,Q,S,Q,S,Q,Y,Q,U,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCPG,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAa,CAAM,EACvC,OAAO,AAAC,IACJ,GAAM,CACF,KAAA,CAAI,CACJ,YAAa,CAAE,cAAA,CAAa,CAAE,CACjC,CAAG,EAEE,EAAO,EAAc,GAAG,CAC1B,AAAC,GAAS,CAAC,kBAAkB,EAAE,EAAK,EAAE,EAAE,AAAS,IAAT,EAAa,EAAK,GAAG,CAAC,UAAY,EAAK,OAAO,CAAC,GAAG,OAAO,CAAC,EACpG,IAAI,CAAC,IAEP,MAAO,CACH,GAAG,CAAM,CACT,KAAM,CAAA,EAAG,EAAK,GAAG,CAAC,cAAc,EAAE,EAAE,EAAA,CAAM,CAC1C,MAAO,CAAC,EAAa,KACjB,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAM,MAAM,CAAC,OAAO,CAClC,IACA,EAAI,YAAY,CAAG,OAAO,GAC1B,EAAY,IAAI,CAAG,CAAA,EAE3B,EACA,QAAS,AAAC,IACN,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,mBAAoB,EACvC,CAAA,GAAU,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAU,eACrC,EAAI,EAAE,CAAC,mBAAoB,KACvB,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,OAAQ,GAAQ,IAAI,CAC1C,AAAC,GAAS,OAAO,EAAK,OAAO,CAAC,KAAK,IAAM,EAAI,YAAY,CAEzD,CAAA,GACA,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAU,cAE/B,EACJ,CACJ,CACJ,CACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCnCwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAY,CAAM,EACtC,OAAO,AAAC,IACJ,GAAM,CACF,KAAA,CAAI,CACJ,YAAa,CAAE,aAAA,CAAY,CAAE,CAChC,CAAG,EAEE,EAAO,EAAa,GAAG,CACzB,AAAC,GAAS,CAAC,kBAAkB,EAAE,EAAK,EAAE,EAAE,AAAS,YAAT,EAAqB,EAAK,GAAG,CAAC,WAAa,EAAK,OAAO,CAAC,EAClG,IAAI,CAAC,IAEP,MAAO,CACH,GAAG,CAAM,CACT,KAAM,CAAA,EAAG,EAAK,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAA,CAAM,CAC5C,MAAO,CAAC,EAAa,KACjB,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAM,MAAM,CAAC,OAAO,CAClC,IACA,EAAI,WAAW,CAAG,EAClB,EAAY,IAAI,CAAG,CAAA,EAE3B,EACA,QAAS,AAAC,IACN,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,yBAA0B,EAC7C,CAAA,GACA,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAU,eAE3B,EAAI,EAAE,CAAC,cAAe,AAAC,IACnB,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,OAAQ,GAAQ,IAAI,CAAC,AAAC,GAAS,EAAK,OAAO,CAAC,KAAK,GAAK,EAC5E,CAAA,GACA,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAU,cAE/B,EACJ,CACJ,CACJ,CACJ,C,E,C,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCnCwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAK,CAAM,EAC/B,OAAO,AAAC,IACJ,GAAM,CACF,KAAA,CAAI,CACJ,YAAa,CAAE,KAAA,CAAI,CAAE,CACxB,CAAG,EAEE,EAAO,EAAK,GAAG,CAAC,AAAC,GAAS,CAAC,kBAAkB,EAAE,EAAK,EAAE,EAAE,EAAK,GAAG,CAAC,AAAA,CAAA,EAAA,EAAA,UAAS,AAAT,EAAW,IAAO,OAAO,CAAC,EAAE,IAAI,CAAC,IAExG,MAAO,CACH,GAAG,CAAM,CACT,KAAM,CAAA,EAAG,EAAK,GAAG,CAAC,cAAc,EAAE,EAAE,EAAA,CAAM,CAC1C,MAAO,CAAC,EAAa,KACjB,GAAM,CAAE,MAAA,CAAK,CAAE,CAAG,EAAM,MAAM,CAAC,OAAO,CAClC,IACA,EAAI,IAAI,CAAG,EAAM,WAAW,GAC5B,EAAY,IAAI,CAAG,CAAA,EAE3B,EACA,QAAS,AAAC,IACN,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,wBAAyB,EAC5C,CAAA,GACA,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAU,eAE3B,EAAI,EAAE,CAAC,OAAQ,AAAC,IACZ,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,OAAQ,GAAQ,IAAI,CAAC,AAAC,GAAS,EAAK,OAAO,CAAC,KAAK,GAAK,EAC5E,CAAA,GACA,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAU,cAE/B,EACJ,CACJ,CACJ,CACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCnCe,SAAS,EAAK,CAAM,EAC/B,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,KAAM,EAAI,IAAI,CAAC,GAAG,CAAC,cACnB,MAAO,AAAC,IACJ,EAAI,IAAI,CAAC,IAAI,CAAG,CAAA,EAChB,EAAY,IAAI,CAAG,CAAA,CACvB,CACJ,CAAA,CACJ,C,E,iB,C,GATwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,E,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCExB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAe,SAAU,CAAM,EAC3B,MAAO,CACH,GAAG,CAAM,CACT,KAAM,CAAC,0DAA0D,EAAE,EAAA,OAAO,CAAC,IAAI,CAAC,AACpF,CACJ,GAPA,IAAA,EAAA,EAAA,qB,E,C,qB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAe,SAAS,EAAM,CAAM,EAChC,OAAO,AAAC,GAAS,CAAA,CACb,GAAG,CAAM,CACT,KAAM,EAAI,IAAI,CAAC,GAAG,CAAC,SACnB,MAAO,AAAC,IACJ,EAAY,IAAI,CAAG,CAAA,CACvB,CACJ,CAAA,CACJ,C,E,iB,C,GARwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,E,E,C,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAxB,IAAA,EAAA,EAAA,WACA,EAAA,EAAA,qB,E,E,c,C,EAEe,OAAM,UAAa,EAAA,OAAS,CACvC,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GACN,IAAI,CAAC,IAAI,CAAG,OAER,AAAC,EAAA,QAAQ,EACT,IAAI,CAAC,IAAI,EAEjB,CAEA,MAAO,CACH,GAAM,CACF,MAAA,CAAK,CACL,YAAA,CAAW,CACX,SAAU,CAAE,WAAA,CAAU,CAAE,WAAA,CAAU,CAAE,OAAA,CAAM,CAAE,CAC/C,CAAG,IAAI,CAAC,GAAG,CAEZ,EAAM,EAAY,QAAS,KACvB,IAAI,CAAC,IAAI,CAAG,CAAA,CAChB,GAEA,IAAI,EAAQ,KACN,EAAS,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,eAAgB,IAAe,EAAE,CACzD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAW,IAAM,aAAa,KAc1C,AAZA,SAAS,IACL,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,MAAM,CAAE,IAAS,CAChD,IAAM,EAAO,CAAM,CAAC,EAAM,CACpB,EAAQ,CAAM,CAAC,EAAK,OAAO,CAAC,KAAK,CAAC,CAClC,EAAY,AAAiB,UAAjB,OAAO,EAAqB,EAAM,OAAO,CAAC,GAAK,CAC7D,CAAA,EAAK,SAAS,GAAK,GACnB,CAAA,EAAK,SAAS,CAAG,CADrB,CAGJ,CACA,EAAQ,WAAW,EAAM,EAAY,cAAc,CACvD,GAGJ,CACJ,CAvCqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCHrB,IAAA,EAAA,EAAA,WAYA,EAAA,EAAA,qB,E,E,c,C,GACA,EAAA,EAAA,oB,E,E,c,C,GACA,EAAA,EAAA,Y,E,E,c,C,EAEe,OAAM,UAAiB,EAAA,OAAS,CAC3C,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GACN,IAAI,CAAC,IAAI,CAAG,WACZ,IAAI,CAAC,MAAM,CAAG,KACd,IAAI,CAAC,YAAY,CAAG,IAAM,KAC1B,IAAI,CAAC,IAAI,CAAC,EAAI,MAAM,CAAC,QAAQ,EAE7B,IAAI,EAAY,CAAA,EAChB,EAAI,EAAE,CAAC,mBAAoB,KACvB,GAAI,CAAC,IAAI,CAAC,GAAG,CAAE,OACf,IAAM,EAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,0BAA0B,AAC5C,CAAA,WAAjB,OAAO,GACP,IAAU,IACV,EAAY,EACZ,IAAI,CAAC,WAAW,CAAC,EAAQ,YAAc,WAAY,IAAI,CAAC,GAAG,EAEnE,EACJ,CAEA,IAAI,KAAM,CACN,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,AACvC,CAEA,IAAI,IAAI,CAAG,CAAE,CACT,IAAI,CAAC,MAAM,CAAC,EAChB,CAEA,IAAI,WAAY,CACZ,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,AACpD,CAEA,IAAI,YAAa,QACb,AAAK,IAAI,CAAC,SAAS,CACZ,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EADf,EAAE,AAElC,CAEA,IAAI,MAAO,QACP,AAAK,IAAI,CAAC,SAAS,CACZ,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EADT,EAAE,AAElC,CAEA,MAAM,CAAG,CAAE,CAAK,CAAE,CACd,GAAM,CAAE,UAAA,CAAS,CAAE,CAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,OACvC,AAAI,AAAe,UAAf,OAAO,EACA,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EAAW,GAEzB,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAW,EAAK,EACpC,CAEA,QAAS,CACL,GAAM,CACF,OAAQ,CAAE,SAAA,CAAQ,CAAE,CACpB,SAAU,CAAE,UAAA,CAAS,CAAE,CAC1B,CAAG,IAAI,CAAC,GAAG,AAEZ,CAAA,EAAU,SAAS,CAAG,GACjB,IAAI,CAAC,UAAU,CAAC,MAAM,GAE3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAwB,IAAI,CAAC,UAAU,EACrD,EAAU,SAAS,CAAG,IAAI,CAAC,UAAU,CAChC,GAAG,CAAC,CAAC,EAAK,IACP,EAAI,IAAI,CACH,KAAK,CAAC,SACN,MAAM,CAAC,AAAC,GAAS,EAAK,IAAI,IAC1B,GAAG,CACA,AAAC,GACG,CAAC,2CAA2C,EAAE,EAAM;AAChD,gCAAA,EAAE,EAAS,MAAM,CAAG,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,GAAQ;AACjC,kCAAA,CAAC,EAEd,IAAI,CAAC,KAEb,IAAI,CAAC,IACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAuB,IAAI,CAAC,UAAU,EACxD,CAEA,MAAM,OAAO,CAAG,CAAE,EAAY,CAAC,CAAC,CAAE,CAC9B,GAAM,CAAE,KAAA,CAAI,CAAE,OAAA,CAAM,CAAE,OAAA,CAAM,CAAE,CAAG,IAAI,CAAC,GAAG,CACnC,EAAiB,CAAE,GAAG,EAAO,QAAQ,CAAE,GAAG,CAAS,CAAE,IAAA,CAAI,EACzD,EAAS,MAAM,IAAI,CAAC,IAAI,CAAC,GAI/B,OAHI,EAAU,IAAI,EACd,CAAA,EAAO,IAAI,CAAG,CAAA,EAAG,EAAK,GAAG,CAAC,mBAAmB,EAAE,EAAE,EAAU,IAAI,CAAA,CAAE,AAAF,EAE5D,CACX,CAEA,YAAY,CAAI,CAAE,CAAG,CAAE,CACnB,GAAM,CAAE,SAAA,CAAQ,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,CAAG,IAAI,CAAC,GAAG,CACtC,CAAE,OAAA,CAAM,CAAE,OAAA,CAAM,CAAE,CAAG,EAErB,EAAY,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,QAChC,CAAA,EAAU,OAAO,CAAG,CAAA,EACpB,EAAU,IAAI,CAAG,EACjB,EAAU,GAAG,CAAG,EAChB,EAAU,KAAK,CAAG,EAAO,QAAQ,CAAC,IAAI,EAAI,YAC1C,EAAU,KAAK,CAAC,IAAI,CAAG,SACvB,EAAU,MAAM,CAAG,KACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAgB,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,CACxD,EAEA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EACxC,EAAO,MAAM,CAAG,KAChB,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,GACP,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAQ,GACf,EAAS,MAAM,CAAG,EAClB,IAAI,CAAC,YAAY,CAAG,EAAM,IAAI,CAAC,SAAS,CAAE,YAAa,IAAM,IAAI,CAAC,MAAM,GAC5E,CAEA,MAAM,KAAK,CAAc,CAAE,CACvB,GAAM,CACF,OAAA,CAAM,CACN,SAAU,CAAE,UAAA,CAAS,CAAE,CAC1B,CAAG,IAAI,CAAC,GAAG,QAEZ,AAAK,IAAI,CAAC,SAAS,EACnB,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAU,EAAgB,AAAA,EAAA,OAAK,CAAE,QAAQ,EACpC,EAAe,GAAG,GACvB,IAAI,CAAC,MAAM,CAAG,EACd,IAAI,CAAC,KAAK,CAAC,EAAe,KAAK,EAExB,MAAM,EAAe,GAAG,EAC1B,IAAI,CAAC,AAAC,GAAa,EAAS,WAAW,IACvC,IAAI,CAAC,AAAC,IAEH,IAAM,EAAO,AADG,IAAI,YAAY,EAAe,QAAQ,EAClC,MAAM,CAAC,GAC5B,OAAQ,EAAe,IAAI,EAAI,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAe,GAAG,GACpD,IAAK,MAAO,CACR,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,GACf,EAAS,EAAe,SAAS,CAAC,GACxC,MAAO,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EACrB,CACA,IAAK,MAAO,CACR,IAAM,EAAM,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,GACf,EAAS,EAAe,SAAS,CAAC,GACxC,MAAO,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EACrB,CACA,IAAK,MAAO,CACR,IAAM,EAAS,EAAe,SAAS,CAAC,GACxC,MAAO,AAAA,CAAA,EAAA,EAAA,SAAQ,AAAR,EAAU,EACrB,CACA,QACI,OAAO,EAAe,GAAG,AACjC,CACJ,GACC,IAAI,CAAC,AAAC,IACH,EAAU,SAAS,CAAG,GAClB,IAAI,CAAC,GAAG,GAAK,IACjB,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,EAC5B,IAAI,CAAC,WAAW,CAAC,WAAY,IAFG,IAKnC,KAAK,CAAC,AAAC,IAGJ,MAFA,EAAU,SAAS,CAAG,GACtB,EAAO,IAAI,CAAG,EACR,CACV,WAzCwB,IA0ChC,CACJ,CA9JqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,mB,Q,W,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GChBrB,IAAA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,e,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,GACA,EAAA,EAAA,c,E,E,c,C,GACA,EAAA,EAAA,kB,E,E,c,C,GACA,EAAA,EAAA,gB,E,E,c,C,GACA,EAAA,EAAA,iB,E,E,c,C,EAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAI,CAAC,aAAa,CAAG,EAAE,CACvB,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EACjC,IAAI,CAAC,KAAK,CAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAEjC,AAAA,CAAA,EAAA,EAAA,OAAQ,AAAR,EAAU,EAAK,IAAI,EACnB,AAAA,CAAA,EAAA,EAAA,OAAQ,AAAR,EAAU,EAAK,IAAI,EACnB,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,EAAK,IAAI,EAClB,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAW,EAAK,IAAI,EACpB,AAAA,CAAA,EAAA,EAAA,OAAU,AAAV,EAAY,EAAK,IAAI,EACrB,AAAA,CAAA,EAAA,EAAA,OAAO,AAAP,EAAS,EAAK,IAAI,EAClB,AAAA,CAAA,EAAA,EAAA,OAAW,AAAX,EAAa,EAAK,IAAI,EACtB,AAAA,CAAA,EAAA,EAAA,OAAS,AAAT,EAAW,EAAK,IAAI,EACpB,AAAA,CAAA,EAAA,EAAA,OAAU,AAAV,EAAY,EAAK,IAAI,CACzB,CAEA,MAAM,CAAM,CAAE,CAAI,CAAE,CAAQ,CAAE,EAAS,CAAC,CAAC,CAAE,CACvC,GAAI,MAAM,OAAO,CAAC,GACd,OAAO,EAAK,GAAG,CAAC,AAAC,GAAS,IAAI,CAAC,KAAK,CAAC,EAAQ,EAAM,EAAU,IAGjE,EAAO,gBAAgB,CAAC,EAAM,EAAU,GACxC,IAAM,EAAU,IAAM,EAAO,mBAAmB,CAAC,EAAM,EAAU,GAEjE,OADA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GACjB,CACX,CAEA,MAAM,CAAM,CAAE,CAAU,CAAE,CAAU,CAAE,CAC9B,GACA,IAAI,CAAC,KAAK,CAAC,EAAQ,aAAc,GAEjC,GACA,IAAI,CAAC,KAAK,CAAC,EAAQ,aAAc,EAEzC,CAEA,OAAO,CAAY,CAAE,CACjB,IAAM,EAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GACrC,EAAQ,KACR,IACA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAO,GAEzC,CAEA,SAAU,CACN,IAAK,IAAI,EAAQ,EAAG,EAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAE,IACnD,IAAI,CAAC,aAAa,CAAC,EAAM,EAEjC,CACJ,C,E,C,c,Q,c,Q,a,Q,e,Q,gB,Q,a,Q,iB,Q,e,Q,gB,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC1DwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,CAAE,CAAM,EACzC,GAAM,CACF,YAAA,CAAW,CACX,SAAU,CAAE,QAAA,CAAO,CAAE,OAAA,CAAM,CAAE,CAChC,CAAG,EAEJ,EAAO,KAAK,CAAC,SAAU,CAAC,QAAS,cAAc,CAAE,AAAC,IAC1C,AAAA,CAAA,EAAA,EAAA,gBAAgB,AAAhB,EAAiB,EAAO,IACxB,EAAI,OAAO,CAAG,AAAyB,UAAzB,EAAM,MAAM,CAAC,OAAO,CAClC,EAAI,OAAO,CAAG,CAAA,EACd,EAAI,IAAI,CAAC,QAAS,KAElB,EAAI,OAAO,CAAG,CAAA,EACd,EAAI,OAAO,CAAG,CAAA,EACd,EAAI,IAAI,CAAC,OAAQ,GAEzB,GAEA,IAAI,EAAa,EAAE,CACnB,EAAO,KAAK,CAAC,EAAQ,QAAS,AAAC,IAC3B,IAAM,EAAM,KAAK,GAAG,GACpB,EAAW,IAAI,CAAC,GAChB,GAAM,CAAE,kBAAA,CAAiB,CAAE,aAAA,CAAY,CAAE,oBAAA,CAAmB,CAAE,mBAAA,CAAkB,CAAE,CAAG,EAE/E,EAAS,EAAW,MAAM,CAAC,AAAC,GAAM,EAAM,GAAK,GACnD,OAAQ,EAAO,MAAM,EACjB,KAAK,EACD,EAAI,IAAI,CAAC,QAAS,GAEd,EAAA,QAAQ,CACJ,CAAC,EAAI,MAAM,EAAI,GACf,EAAI,MAAM,GAGd,EAAI,MAAM,GAEd,EAAa,EACb,KACJ,MAAK,EACD,EAAI,IAAI,CAAC,WAAY,GAEjB,EAAA,QAAQ,CACJ,CAAC,EAAI,MAAM,EAAI,GACf,EAAI,MAAM,GAGV,GACA,CAAA,EAAI,UAAU,CAAG,CAAC,EAAI,UAAU,AAAV,EAG9B,EAAa,EAAE,CACf,KACJ,SACI,EAAa,EAAE,AACvB,CACJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCxDwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAU,CAAG,CAAE,CAAM,EACzC,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAEhC,EAAO,KAAK,CACR,EACA,AAAC,IACG,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,aAClB,EAAI,IAAI,CAAC,QAAS,CAAA,EAAM,EAC5B,EACA,AAAC,IACG,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,aACrB,EAAI,IAAI,CAAC,QAAS,CAAA,EAAO,EAC7B,EAER,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDChBe,SAAS,EAAS,CAAG,CAAE,CAAM,EACxC,GAAM,CAAE,QAAA,CAAO,CAAE,CAAG,EAAI,QAAQ,CAEhC,EAAO,KAAK,CAAC,EAAS,YAAa,AAAC,IAChC,EAAI,IAAI,CAAC,YAAa,EAC1B,EACJ,C,E,iB,C,GANwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,E,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEA,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAW,CAAG,CAAE,CAAM,EAC1C,GAAM,CAAE,OAAA,CAAM,CAAE,YAAA,CAAW,CAAE,CAAG,EAEhC,EAAI,EAAE,CAAC,SAAU,KACb,GAAM,CAAE,YAAA,CAAW,CAAE,OAAA,CAAM,CAAE,CAAG,CAC5B,AAAc,CAAA,aAAd,EAAI,KAAK,EAAmB,EAAO,QAAQ,EAC3C,EAAI,QAAQ,GAEhB,EAAI,WAAW,CAAG,EAClB,EAAO,IAAI,CAAG,EAClB,GAEA,IAAM,EAAW,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,IAAM,EAAI,IAAI,CAAC,UAAW,EAAY,WAAW,EAC3E,EAAO,KAAK,CAAC,OAAQ,CAAC,oBAAqB,SAAS,CAAE,IAAM,KACxD,QAAU,OAAO,WAAW,EAAI,OAAO,WAAW,CAAC,QAAQ,EAC3D,EAAO,KAAK,CAAC,OAAO,WAAW,CAAE,SAAU,IAAM,IAEzD,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCWwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GA9BxB,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,uBA6Be,SAAS,EAAY,CAAG,CAAE,CAAM,EAC3C,GAAI,AAAA,EAAA,QAAO,EAAK,CAAC,EAAI,MAAM,CAAC,MAAM,CAAE,CAChC,GAAM,CAAE,OAAA,CAAM,CAAE,UAAA,CAAS,CAAE,CAAG,EAAI,QAAQ,CAEtC,EAAc,KACd,EAAa,CAAA,EACb,EAAS,EACT,EAAS,EACT,EAAY,EAEV,EAAe,AAAC,IAClB,GAAI,AAAyB,IAAzB,EAAM,OAAO,CAAC,MAAM,EAAU,CAAC,EAAI,MAAM,CAAE,CACvC,IAAgB,GAChB,AAAA,CAAA,EAAA,EAAA,cAAa,AAAb,EAAe,EAAK,GAGxB,EAAa,CAAA,EACb,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,CAAG,EAAM,OAAO,CAAC,EAAE,CACzC,EAAS,EACT,EAAS,EACT,EAAY,EAAI,WAAW,AAC/B,CACJ,EAEM,EAAc,AAAC,IACjB,GAAI,AAAyB,IAAzB,EAAM,OAAO,CAAC,MAAM,EAAU,GAAc,EAAI,QAAQ,CAAE,CAC1D,GAAM,CAAE,MAAA,CAAK,CAAE,MAAA,CAAK,CAAE,CAAG,EAAM,OAAO,CAAC,EAAE,CACnC,EAAY,AAlDlC,SAA2B,CAAM,CAAE,CAAM,CAAE,CAAI,CAAE,CAAI,EACjD,IAAI,EAAK,EAAS,EACd,EAAK,EAAO,EACZ,EAAS,EAEb,GAAI,AAAe,EAAf,KAAK,GAAG,CAAC,IAAW,AAAe,EAAf,KAAK,GAAG,CAAC,GAC7B,OAAO,EAGX,IAAI,EAZI,AAAqB,IAArB,KAAK,KAAK,CAYY,EAAJ,GAZU,KAAK,EAAE,CAuB3C,OAVI,GAAS,KAAO,EAAQ,GACxB,EAAS,EACF,GAAS,IAAM,EAAQ,IAC9B,EAAS,EACF,GAAS,MAAQ,EAAQ,IAChC,EAAS,EACF,CAAA,GAAU,KAAO,GAAS,KAAS,GAAS,MAAQ,EAAQ,IAAA,GACnE,CAAA,EAAS,CAAA,EAGN,CACX,EA6BoD,EAAQ,EAAQ,EAAO,GACrD,EAAe,CAAC,EAAG,EAAE,CAAC,QAAQ,CAAC,GAC/B,EAAa,CAAC,EAAG,EAAE,CAAC,QAAQ,CAAC,GAEnC,GADiB,GAAgB,CAAC,EAAI,QAAQ,EAAM,GAAc,EAAI,QAAQ,CACjE,CACT,IAAM,EAAS,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAO,AAAA,CAAA,EAAQ,CAAA,EAAU,EAAI,KAAK,CAAE,GAAI,GACjD,EAAS,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAO,AAAA,CAAA,EAAQ,CAAA,EAAU,EAAI,MAAM,CAAE,GAAI,GAClD,EAAQ,EAAI,QAAQ,CAAG,EAAS,EAChC,EAAmB,IAAgB,EAAS,EAAI,WAAW,CAAC,gBAAgB,CAAG,EAC/E,EAAc,AAAA,CAAA,EAAA,EAAA,KAAI,AAAJ,EAAM,EAAY,EAAI,QAAQ,CAAG,EAAQ,EAAkB,EAAG,EAAI,QAAQ,CAC9F,CAAA,EAAI,IAAI,CAAG,EACX,EAAI,IAAI,CAAC,SAAU,SAAU,AAAA,CAAA,EAAA,EAAA,KAAK,AAAL,EAAM,EAAc,EAAI,QAAQ,CAAE,EAAG,GAAI,GACtE,EAAI,MAAM,CAAC,IAAI,CAAG,CAAA,EAAG,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,GAAa,GAAG,EAAE,AAAA,CAAA,EAAA,EAAA,YAAY,AAAZ,EAAa,EAAI,QAAQ,EAAA,CAAG,AACpF,CACJ,CACJ,CAYI,CAAA,EAAI,MAAM,CAAC,OAAO,GAClB,EAAO,KAAK,CAAC,EAAQ,aAAc,AAAC,IAChC,EAAc,EACd,EAAa,EACjB,GACA,EAAO,KAAK,CAAC,EAAQ,YAAa,IAGtC,EAAO,KAAK,CAAC,EAAW,aAAc,AAAC,IACnC,EAAc,EACd,EAAa,EACjB,GAEA,EAAO,KAAK,CAAC,EAAW,YAAa,GACrC,EAAO,KAAK,CAAC,SAAU,WAxBJ,KACX,IACA,EAAS,EACT,EAAS,EACT,EAAY,EACZ,EAAa,CAAA,EACb,EAAc,KAEtB,EAiBJ,CACJ,C,E,C,W,Q,sB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GClGwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,YAEe,SAAS,EAAS,CAAG,CAAE,CAAM,EACxC,GAAM,CACF,OAAA,CAAM,CACN,YAAA,CAAW,CACX,SAAU,CAAE,WAAA,CAAU,CAAE,CAC3B,CAAG,EAEE,EAAW,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,KACtB,EAAI,IAAI,CAAC,OAAQ,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,EAAY,EAAY,UAAU,EACpE,EAAG,EAAY,WAAW,EAE1B,EAAO,KAAK,CAAC,OAAQ,SAAU,IAAM,KAErC,EAAI,EAAE,CAAC,OAAQ,AAAC,IACR,EAAO,QAAQ,EACf,CAAA,EAAI,IAAI,CAAG,CAAC,CADhB,CAGJ,EACJ,C,E,C,W,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCpBe,SAAS,EAAa,CAAG,CAAE,CAAM,EAC5C,EAAO,KAAK,CAAC,SAAU,YAAa,AAAC,IACjC,EAAI,IAAI,CAAC,qBAAsB,EACnC,GAEA,EAAO,KAAK,CAAC,SAAU,UAAW,AAAC,IAC/B,EAAI,IAAI,CAAC,mBAAoB,EACjC,EACJ,C,E,iB,C,GARwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,E,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAT,SAAS,EAAW,CAAG,EAClC,GAAI,EAAI,WAAW,CAAC,OAAO,CAAE,CACzB,IAAI,EAAQ,MAEX,AAAA,SAAS,IACF,EAAI,OAAO,EACX,EAAI,IAAI,CAAC,OAGT,AAAC,EAAI,SAAS,EACd,CAAA,EAAQ,sBAAsB,EADlC,CAGJ,IAEA,EAAI,EAAE,CAAC,UAAW,KACd,qBAAqB,EACzB,EACJ,CACJ,C,E,iB,C,GAlBwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,E,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kDCAT,SAAS,EAAY,CAAG,CAAE,CAAM,EAE/C,C,E,iB,C,GAFwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,E,E,C,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GCAxB,IAAA,EAAA,EAAA,UAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAI,CAAC,GAAG,CAAG,EACX,IAAI,CAAC,IAAI,CAAG,CAAC,EAET,EAAI,MAAM,CAAC,MAAM,EAAI,CAAC,EAAA,QAAQ,EAC9B,IAAI,CAAC,IAAI,EAEjB,CAEA,MAAO,CACH,GAAM,CAAE,MAAA,CAAK,CAAE,YAAA,CAAW,CAAE,CAAG,IAAI,CAAC,GAAG,CAEvC,IAAI,CAAC,GAAG,CAAC,SAAU,KACX,IAAI,CAAC,GAAG,CAAC,aAAa,EACtB,CAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAG,CAAA,CAD7B,CAGJ,GAEA,IAAI,CAAC,GAAG,CAAC,QAAS,KACd,IAAI,CAAC,GAAG,CAAC,MAAM,EACnB,GAEA,IAAI,CAAC,GAAG,CAAC,YAAa,KAClB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAG,EAAY,SAAS,AAC7C,GAEA,IAAI,CAAC,GAAG,CAAC,UAAW,KAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAI,EAAY,WAAW,AAC9C,GAEA,IAAI,CAAC,GAAG,CAAC,aAAc,KACnB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAG,EAAY,SAAS,AAC5C,GAEA,IAAI,CAAC,GAAG,CAAC,YAAa,KAClB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAI,EAAY,WAAW,AAC9C,GAEA,EAAM,SAAU,UAAW,AAAC,IACxB,GAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAE,CAClB,IAAM,EAAM,SAAS,aAAa,CAAC,OAAO,CAAC,WAAW,GAChD,EAAW,SAAS,aAAa,CAAC,YAAY,CAAC,mBACrD,GACI,AAAQ,UAAR,GACA,AAAQ,aAAR,GACA,AAAa,KAAb,GACA,AAAa,SAAb,GACA,CAAC,EAAM,MAAM,EACb,CAAC,EAAM,OAAO,EACd,CAAC,EAAM,OAAO,EACd,CAAC,EAAM,QAAQ,CACjB,CACE,IAAM,EAAS,IAAI,CAAC,IAAI,CAAC,EAAM,IAAI,CAAC,CACpC,GAAI,EAAQ,CACR,EAAM,cAAc,GACpB,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,MAAM,CAAE,IACvC,CAAM,CAAC,EAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,GAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAU,EAC5B,CACJ,CACJ,CACA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAW,EAC7B,EACJ,CAEA,IAAI,CAAG,CAAE,CAAK,CAAE,CAMZ,OALI,IAAI,CAAC,IAAI,CAAC,EAAI,CACd,IAAI,CAAC,IAAI,CAAC,EAAI,CAAC,IAAI,CAAC,GAEpB,IAAI,CAAC,IAAI,CAAC,EAAI,CAAG,CAAC,EAAM,CAErB,IAAI,AACf,CAEA,OAAO,CAAG,CAAE,CAAK,CAAE,CACf,GAAI,IAAI,CAAC,IAAI,CAAC,EAAI,CAAE,CAChB,IAAM,EAAQ,IAAI,CAAC,IAAI,CAAC,EAAI,CAAC,OAAO,CAAC,EACjC,AAAU,CAAA,KAAV,GACA,IAAI,CAAC,IAAI,CAAC,EAAI,CAAC,MAAM,CAAC,EAAO,EAErC,CACA,OAAO,IAAI,AACf,CACJ,C,E,C,U,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCvFA,IAAA,EAAA,EAAA,qB,E,E,c,C,EAEe,OAAM,UAAc,EAAA,OAAS,CACxC,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GAEN,GAAM,CACF,OAAA,CAAM,CACN,SAAU,CAAE,OAAA,CAAM,CAAE,CACvB,CAAG,CAEJ,CAAA,IAAI,CAAC,IAAI,CAAG,QACZ,IAAI,CAAC,OAAO,CAAG,EAEf,IAAK,IAAI,EAAQ,EAAG,EAAQ,EAAO,MAAM,CAAC,MAAM,CAAE,IAC9C,IAAI,CAAC,GAAG,CAAC,EAAO,MAAM,CAAC,EAAM,CAErC,CACJ,CAhBqB,EAAA,OAAA,CAAA,C,E,C,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCFrB,IAAA,EAAA,EAAA,WACA,EAAA,EAAA,qB,E,E,c,C,EAEe,OAAM,UAAgB,EAAA,OAAS,CAC1C,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GACN,IAAI,CAAC,IAAI,CAAG,UACZ,AAAA,CAAA,EAAA,EAAA,MAAM,AAAN,EAAO,EAAI,QAAQ,CAAC,QAAQ,CAAE,EAAI,KAAK,CAAC,OAAO,CACnD,CACJ,CANqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,A,E,kD,iB,C,GCHrB,IAAA,EAAA,EAAA,UAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAI,CAAC,GAAG,CAAG,EACX,IAAI,CAAC,KAAK,CAAG,IACjB,CAEA,IAAI,KAAK,CAAG,CAAE,CACV,GAAM,CACF,YAAA,CAAW,CACX,SAAU,CAAE,QAAA,CAAO,CAAE,aAAA,CAAY,CAAE,CACtC,CAAG,IAAI,CAAC,GAAG,CAER,GACA,EAAa,SAAS,CAAG,aAAe,MAAQ,EAAI,OAAO,CAAC,IAAI,GAAK,EACrE,AAAA,CAAA,EAAA,EAAA,QAAQ,AAAR,EAAS,EAAS,mBAClB,aAAa,IAAI,CAAC,KAAK,EACvB,IAAI,CAAC,KAAK,CAAG,WAAW,KACpB,EAAa,SAAS,CAAG,GACzB,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,kBACzB,EAAG,EAAY,WAAW,GAE1B,AAAA,CAAA,EAAA,EAAA,WAAW,AAAX,EAAY,EAAS,kBAE7B,CACJ,C,E,C,U,Q,iD,O,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GC1BA,IAAA,EAAA,EAAA,WACA,EAAA,EAAA,qB,E,E,c,C,EAEe,OAAM,UAAa,EAAA,OAAS,CACvC,YAAY,CAAG,CAAE,CACb,KAAK,CAAC,GAEN,IAAI,CAAC,IAAI,CAAG,OACZ,GAAM,CAAE,SAAA,CAAQ,CAAE,MAAA,CAAK,CAAE,OAAA,CAAM,CAAE,CAAG,EAE9B,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAC5C,EAAS,AAAA,CAAA,EAAA,EAAA,MAAK,AAAL,EAAO,EAAS,MAAM,CAAE,EAAM,KAAK,EAElD,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAE5B,EAAI,EAAE,CAAC,UAAW,KACd,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,QAC5B,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAS,EAAQ,UAAW,KAChC,GAEA,EAAO,KAAK,CAAC,EAAS,MAAM,CAAE,QAAS,IAAM,EAAI,IAAI,GACzD,CACJ,CAnBqB,EAAA,OAAA,CAAA,C,E,C,U,Q,oB,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCHrB,IAAA,EAAA,EAAA,YACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,2B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,6B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,iC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,kC,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,yB,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,EAAA,EAAA,4B,E,E,c,C,GACA,EAAA,EAAA,oC,E,E,c,C,GACA,EAAA,EAAA,mC,E,E,c,C,GACA,EAAA,EAAA,wC,E,E,c,C,GACA,EAAA,EAAA,uC,E,E,c,C,GACA,EAAA,EAAA,+B,E,E,c,C,GACA,EAAA,EAAA,gC,E,E,c,C,GACA,EAAA,EAAA,0B,E,E,c,C,GACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,2B,G,E,c,C,IACA,GAAA,EAAA,6B,G,E,c,C,GAEqB,CAAA,EAAA,OAAA,CAAN,MACX,YAAY,CAAG,CAAE,CACb,IAAM,EAAQ,CACV,QAAA,EAAA,OAAM,CACN,MAAA,EAAA,OAAI,CACJ,KAAA,EAAA,OAAG,CACH,MAAA,EAAA,OAAI,CACJ,MAAA,EAAA,OAAI,CACJ,OAAA,EAAA,OAAK,CACL,YAAA,EAAA,OAAU,CACV,WAAA,EAAA,OAAS,CACT,QAAA,EAAA,OAAM,CACN,IAAA,EAAA,OAAE,CACF,UAAA,EAAA,OAAQ,CACR,WAAA,EAAA,OAAS,CACT,aAAA,EAAA,OAAW,CACX,YAAA,EAAA,OAAU,CACV,OAAA,EAAA,OAAK,CACL,KAAA,EAAA,OAAG,CACH,KAAA,EAAA,OAAG,CACH,OAAA,EAAA,OAAK,CACL,cAAA,EAAA,OAAY,CACZ,aAAA,EAAA,OAAW,CACX,iBAAA,EAAA,OAAe,CACf,gBAAA,EAAA,OAAc,CACd,SAAA,EAAA,OAAO,CACP,UAAA,EAAA,OAAQ,CACR,MAAA,GAAA,OAAI,CACJ,MAAA,GAAA,OAAI,CACJ,QAAA,GAAA,OAAM,CACN,GAAG,EAAI,MAAM,CAAC,KAAK,AACvB,EAEA,IAAK,IAAM,KAAO,EACd,AAAA,CAAA,EAAA,EAAA,GAAE,AAAF,EAAI,IAAI,CAAE,EAAK,CACX,IAAK,IAAM,AAAA,CAAA,EAAA,EAAA,OAAM,AAAN,EAAQ,EAAK,CAAK,CAAC,EAAI,CACtC,EAER,CACJ,C,E,C,W,Q,4B,Q,0B,Q,0B,Q,yB,Q,0B,Q,2B,Q,iC,Q,+B,Q,4B,Q,+B,Q,gC,Q,kC,Q,iC,Q,2B,Q,wB,Q,yB,Q,2B,Q,mC,Q,kC,Q,uC,Q,sC,Q,8B,Q,+B,Q,yB,Q,0B,Q,0B,Q,4B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,ECpEA,EAAO,OAAO,CAAG,utF,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,ic,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sK,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,6M,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yL,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kX,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qlB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,wX,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kuB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gJ,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,qa,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,22B,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,2M,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+N,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Z,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,+Y,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mS,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,4S,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,mnB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,onB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,kP,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,sZ,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,muB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,okB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,gjB,E,C,E,C,M,C,S,C,C,C,C,C,C,C,ECAjB,EAAO,OAAO,CAAG,yN,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCAjB,IAAA,EAAA,EAAA,U,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","sources":["","src/index.js","package.json","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e5b18d0e844e5afa.js","../../node_modules/option-validator/dist/option-validator.js","src/utils/emitter.js","../../node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/utils/index.js","src/utils/dom.js","src/utils/compatibility.js","src/utils/error.js","src/utils/subtitle.js","src/utils/file.js","src/utils/property.js","src/utils/time.js","src/utils/format.js","src/scheme/index.js","src/config/index.js","src/template.js","src/i18n/index.js","src/i18n/zh-cn.js","src/player/index.js","src/player/urlMix.js","src/player/attrMix.js","src/player/playMix.js","src/player/pauseMix.js","src/player/toggleMix.js","src/player/seekMix.js","src/player/volumeMix.js","src/player/currentTimeMix.js","src/player/durationMix.js","src/player/switchMix.js","src/player/playbackRateMix.js","src/player/aspectRatioMix.js","src/player/screenshotMix.js","src/player/fullscreenMix.js","src/libs/screenfull.js","src/player/fullscreenWebMix.js","src/player/pipMix.js","src/player/loadedMix.js","src/player/playedMix.js","src/player/playingMix.js","src/player/autoSizeMix.js","src/player/rectMix.js","src/player/flipMix.js","src/player/miniMix.js","src/player/posterMix.js","src/player/autoHeightMix.js","src/player/cssVarMix.js","src/player/themeMix.js","src/player/typeMix.js","src/player/stateMix.js","src/player/subtitleOffsetMix.js","src/player/airplayMix.js","src/player/qualityMix.js","src/player/thumbnailsMix.js","src/player/optionInit.js","src/player/eventInit.js","src/control/index.js","src/utils/component.js","src/control/fullscreen.js","src/control/fullscreenWeb.js","src/control/pip.js","src/control/playAndPause.js","src/control/progress.js","src/control/time.js","src/control/volume.js","src/control/setting.js","src/control/screenshot.js","src/control/airplay.js","src/contextmenu/index.js","src/contextmenu/playbackRate.js","src/contextmenu/aspectRatio.js","src/contextmenu/flip.js","src/contextmenu/info.js","src/contextmenu/version.js","src/contextmenu/close.js","src/info.js","src/subtitle.js","src/events/index.js","src/events/clickInit.js","src/events/hoverInit.js","src/events/moveInit.js","src/events/resizeInit.js","src/events/gestureInit.js","src/events/viewInit.js","src/events/documentInit.js","src/events/updateInit.js","src/events/restoreInit.js","src/hotkey.js","src/layer.js","src/loading.js","src/notice.js","src/mask.js","src/icons/index.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-f46ce6fd4d6219c9.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e2699ab1b5d12dec.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-fb4f406243bae249.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e7f49ef0a750e46e.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-355a67f597addcce.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-b511c19de45d7b5a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a8c37daa693ed128.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6e583e791161db23.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5d29c1646a3f2a46.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-378fbb72a82e8e48.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e8cd5a1ef68bb59f.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-ffbc0f66c3a6fc5c.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-5686118494f842bb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-9f0950781f43006b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d259a056e372040b.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-04028cd054423deb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-eafe778ff83fb2ea.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a4473dfbbe0190b0.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-73212e2644fd43cb.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-6f4de877081a61c3.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-886a1de38693838a.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-dc18eeb39fcd983d.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-059301d9482d34d2.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-d9590f5b369d2f07.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-7a1cdac95b207001.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-e53925a959c8f5c7.js","../../node_modules/@parcel/runtime-js/lib/bundles/runtime-a9b336b1c2248901.js","src/setting/index.js","src/setting/flip.js","src/setting/aspectRatio.js","src/setting/playbackRate.js","src/setting/subtitleOffset.js","src/storage.js","src/plugins/index.js","src/plugins/miniProgressBar.js","src/plugins/autoOrientation.js","src/plugins/autoPlayback.js","src/plugins/fastForward.js","src/plugins/lock.js"],"sourcesContent":["// modules are defined as an array\n// [ module function, map of requires ]\n//\n// map of requires is short require name -> numeric require\n//\n// anything defined in a previous bundle is accessed via the\n// orig method which is the require for previous bundles\n\n(function (\n modules,\n entry,\n mainEntry,\n parcelRequireName,\n externals,\n distDir,\n publicUrl,\n devServer\n) {\n /* eslint-disable no-undef */\n var globalObject =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n /* eslint-enable no-undef */\n\n // Save the require from previous bundle to this closure if any\n var previousRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n\n var importMap = previousRequire.i || {};\n var cache = previousRequire.cache || {};\n // Do not use `require` to prevent Webpack from trying to bundle this call\n var nodeRequire =\n typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n\n function newRequire(name, jumped) {\n if (!cache[name]) {\n if (!modules[name]) {\n if (externals[name]) {\n return externals[name];\n }\n // if we cannot find the module within our internal map or\n // cache jump to the current global require ie. the last bundle\n // that was added to the page.\n var currentRequire =\n typeof globalObject[parcelRequireName] === 'function' &&\n globalObject[parcelRequireName];\n if (!jumped && currentRequire) {\n return currentRequire(name, true);\n }\n\n // If there are other bundles on this page the require from the\n // previous one is saved to 'previousRequire'. Repeat this as\n // many times as there are bundles until the module is found or\n // we exhaust the require chain.\n if (previousRequire) {\n return previousRequire(name, true);\n }\n\n // Try the node require function if it exists.\n if (nodeRequire && typeof name === 'string') {\n return nodeRequire(name);\n }\n\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n }\n\n localRequire.resolve = resolve;\n localRequire.cache = {};\n\n var module = (cache[name] = new newRequire.Module(name));\n\n modules[name][0].call(\n module.exports,\n localRequire,\n module,\n module.exports,\n globalObject\n );\n }\n\n return cache[name].exports;\n\n function localRequire(x) {\n var res = localRequire.resolve(x);\n return res === false ? {} : newRequire(res);\n }\n\n function resolve(x) {\n var id = modules[name][1][x];\n return id != null ? id : x;\n }\n }\n\n function Module(moduleName) {\n this.id = moduleName;\n this.bundle = newRequire;\n this.require = nodeRequire;\n this.exports = {};\n }\n\n newRequire.isParcelRequire = true;\n newRequire.Module = Module;\n newRequire.modules = modules;\n newRequire.cache = cache;\n newRequire.parent = previousRequire;\n newRequire.distDir = distDir;\n newRequire.publicUrl = publicUrl;\n newRequire.devServer = devServer;\n newRequire.i = importMap;\n newRequire.register = function (id, exports) {\n modules[id] = [\n function (require, module) {\n module.exports = exports;\n },\n {},\n ];\n };\n\n // Only insert newRequire.load when it is actually used.\n // The code in this file is linted against ES5, so dynamic import is not allowed.\n // INSERT_LOAD_HERE\n\n Object.defineProperty(newRequire, 'root', {\n get: function () {\n return globalObject[parcelRequireName];\n },\n });\n\n globalObject[parcelRequireName] = newRequire;\n\n for (var i = 0; i < entry.length; i++) {\n newRequire(entry[i]);\n }\n\n if (mainEntry) {\n // Expose entry point to Node, AMD or browser globals\n // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js\n var mainExports = newRequire(mainEntry);\n\n // CommonJS\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = mainExports;\n\n // RequireJS\n } else if (typeof define === 'function' && define.amd) {\n define(function () {\n return mainExports;\n });\n }\n }\n})({\"4omrA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _indexLess = require(\"bundle-text:./style/index.less\");\nvar _indexLessDefault = parcelHelpers.interopDefault(_indexLess);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _emitter = require(\"./utils/emitter\");\nvar _emitterDefault = parcelHelpers.interopDefault(_emitter);\nvar _utils = require(\"./utils\");\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nvar _config = require(\"./config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _template = require(\"./template\");\nvar _templateDefault = parcelHelpers.interopDefault(_template);\nvar _i18N = require(\"./i18n\");\nvar _i18NDefault = parcelHelpers.interopDefault(_i18N);\nvar _player = require(\"./player\");\nvar _playerDefault = parcelHelpers.interopDefault(_player);\nvar _control = require(\"./control\");\nvar _controlDefault = parcelHelpers.interopDefault(_control);\nvar _contextmenu = require(\"./contextmenu\");\nvar _contextmenuDefault = parcelHelpers.interopDefault(_contextmenu);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _subtitle = require(\"./subtitle\");\nvar _subtitleDefault = parcelHelpers.interopDefault(_subtitle);\nvar _events = require(\"./events\");\nvar _eventsDefault = parcelHelpers.interopDefault(_events);\nvar _hotkey = require(\"./hotkey\");\nvar _hotkeyDefault = parcelHelpers.interopDefault(_hotkey);\nvar _layer = require(\"./layer\");\nvar _layerDefault = parcelHelpers.interopDefault(_layer);\nvar _loading = require(\"./loading\");\nvar _loadingDefault = parcelHelpers.interopDefault(_loading);\nvar _notice = require(\"./notice\");\nvar _noticeDefault = parcelHelpers.interopDefault(_notice);\nvar _mask = require(\"./mask\");\nvar _maskDefault = parcelHelpers.interopDefault(_mask);\nvar _icons = require(\"./icons\");\nvar _iconsDefault = parcelHelpers.interopDefault(_icons);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _storage = require(\"./storage\");\nvar _storageDefault = parcelHelpers.interopDefault(_storage);\nvar _plugins = require(\"./plugins\");\nvar _pluginsDefault = parcelHelpers.interopDefault(_plugins);\nlet id = 0;\nconst instances = [];\nclass Artplayer extends (0, _emitterDefault.default) {\n constructor(option, readyCallback){\n super();\n this.id = ++id;\n const mergeOption = _utils.mergeDeep(Artplayer.option, option);\n mergeOption.container = option.container;\n this.option = (0, _optionValidatorDefault.default)(mergeOption, (0, _schemeDefault.default));\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 this.template = new (0, _templateDefault.default)(this);\n this.events = new (0, _eventsDefault.default)(this);\n this.storage = new (0, _storageDefault.default)(this);\n this.icons = new (0, _iconsDefault.default)(this);\n this.i18n = new (0, _i18NDefault.default)(this);\n this.notice = new (0, _noticeDefault.default)(this);\n this.player = new (0, _playerDefault.default)(this);\n this.layers = new (0, _layerDefault.default)(this);\n this.controls = new (0, _controlDefault.default)(this);\n this.contextmenu = new (0, _contextmenuDefault.default)(this);\n this.subtitle = new (0, _subtitleDefault.default)(this);\n this.info = new (0, _infoDefault.default)(this);\n this.loading = new (0, _loadingDefault.default)(this);\n this.hotkey = new (0, _hotkeyDefault.default)(this);\n this.mask = new (0, _maskDefault.default)(this);\n this.setting = new (0, _settingDefault.default)(this);\n this.plugins = new (0, _pluginsDefault.default)(this);\n if (typeof readyCallback === 'function') this.on('ready', ()=>readyCallback.call(this, this));\n if (Artplayer.DEBUG) {\n const log = (msg)=>console.log(`[ART.${this.id}] -> ${msg}`);\n log('Version@' + Artplayer.version);\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)this.on('video:' + (0, _configDefault.default).events[index], (event)=>log('Event@' + event.type));\n }\n instances.push(this);\n }\n static get instances() {\n return instances;\n }\n static get version() {\n return 0, _packageJson.version;\n }\n static get config() {\n return 0, _configDefault.default;\n }\n static get utils() {\n return _utils;\n }\n static get scheme() {\n return 0, _schemeDefault.default;\n }\n static get Emitter() {\n return 0, _emitterDefault.default;\n }\n static get validator() {\n return 0, _optionValidatorDefault.default;\n }\n static get kindOf() {\n return (0, _optionValidatorDefault.default).kindOf;\n }\n static get html() {\n return (0, _templateDefault.default).html;\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 get proxy() {\n return this.events.proxy;\n }\n get query() {\n return this.template.query;\n }\n get video() {\n return this.template.$video;\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}\nexports.default = Artplayer;\nArtplayer.STYLE = (0, _indexLessDefault.default);\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 = [\n 0.5,\n 0.75,\n 1,\n 1.25,\n 1.5,\n 2\n];\nArtplayer.ASPECT_RATIO = [\n 'default',\n '4:3',\n '16:9'\n];\nArtplayer.FLIP = [\n 'normal',\n 'horizontal',\n 'vertical'\n];\nArtplayer.FULLSCREEN_WEB_IN_BODY = false;\nArtplayer.LOG_VERSION = true;\nArtplayer.USE_RAF = false;\nif (_utils.isBrowser) {\n window['Artplayer'] = Artplayer;\n _utils.setStyleText('artplayer-style', (0, _indexLessDefault.default));\n setTimeout(()=>{\n if (Artplayer.LOG_VERSION) console.log(`%c ArtPlayer %c ${Artplayer.version} %c https://artplayer.org`, 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', '');\n }, 100);\n}\n\n},{\"../package.json\":\"3QATz\",\"bundle-text:./style/index.less\":\"7b65e\",\"option-validator\":\"glVMO\",\"./utils/emitter\":\"evjIj\",\"./utils\":\"2zmtQ\",\"./scheme\":\"lGoF1\",\"./config\":\"auZaO\",\"./template\":\"1uh6E\",\"./i18n\":\"3udCS\",\"./player\":\"9mB1U\",\"./control\":\"3aoXC\",\"./contextmenu\":\"5YYHx\",\"./info\":\"j6kB4\",\"./subtitle\":\"ldqPL\",\"./events\":\"5jGH8\",\"./hotkey\":\"8a1Mr\",\"./layer\":\"3WCuK\",\"./loading\":\"inwRV\",\"./notice\":\"iAojr\",\"./mask\":\"4ZuYu\",\"./icons\":\"aEpTt\",\"./setting\":\"9Bz5C\",\"./storage\":\"ly2Yz\",\"./plugins\":\"enDIw\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3QATz\":[function(require,module,exports,__globalThis) {\nmodule.exports = JSON.parse(\"{\\\"license\\\":\\\"MIT\\\",\\\"name\\\":\\\"artplayer\\\",\\\"version\\\":\\\"5.2.5\\\",\\\"main\\\":\\\"dist/artplayer.js\\\",\\\"legacy\\\":\\\"dist/artplayer.legacy.js\\\",\\\"types\\\":\\\"types/artplayer.d.ts\\\",\\\"homepage\\\":\\\"https://artplayer.org\\\",\\\"author\\\":\\\"Harvey Zack \\\",\\\"browserslist\\\":\\\"last 1 Chrome version\\\",\\\"description\\\":\\\"ArtPlayer.js is a modern and full featured HTML5 video player\\\",\\\"repository\\\":{\\\"type\\\":\\\"git\\\",\\\"url\\\":\\\"git+https://github.com/zhw2590582/ArtPlayer.git\\\"},\\\"bugs\\\":{\\\"url\\\":\\\"https://github.com/zhw2590582/ArtPlayer/issues\\\"},\\\"keywords\\\":[\\\"html5\\\",\\\"video\\\",\\\"player\\\"],\\\"dependencies\\\":{\\\"option-validator\\\":\\\"^2.0.6\\\"}}\");\n\n},{}],\"7b65e\":[function(require,module,exports,__globalThis) {\nmodule.exports = \".art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:\\\"\\\";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=\\\"\\\"]:before,[aria-label=\\\"\\\"]:after,[data-hint=\\\"\\\"]:before,[data-hint=\\\"\\\"]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}\";\n\n},{}],\"glVMO\":[function(require,module,exports,__globalThis) {\n!function(r, t) {\n module.exports = t();\n}(this, function() {\n \"use strict\";\n function e(r) {\n return (e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(r) {\n return typeof r;\n } : function(r) {\n return r && \"function\" == typeof Symbol && r.constructor === Symbol && r !== Symbol.prototype ? \"symbol\" : typeof r;\n })(r);\n }\n var n = Object.prototype.toString, c = function(r) {\n if (void 0 === r) return \"undefined\";\n if (null === r) return \"null\";\n var t = e(r);\n if (\"boolean\" === t) return \"boolean\";\n if (\"string\" === t) return \"string\";\n if (\"number\" === t) return \"number\";\n if (\"symbol\" === t) return \"symbol\";\n if (\"function\" === t) return function(r) {\n return \"GeneratorFunction\" === o(r);\n }(r) ? \"generatorfunction\" : \"function\";\n if (function(r) {\n return Array.isArray ? Array.isArray(r) : r instanceof Array;\n }(r)) return \"array\";\n if (function(r) {\n if (r.constructor && \"function\" == typeof r.constructor.isBuffer) return r.constructor.isBuffer(r);\n return !1;\n }(r)) return \"buffer\";\n if (function(r) {\n try {\n if (\"number\" == typeof r.length && \"function\" == typeof r.callee) return !0;\n } catch (r) {\n if (-1 !== r.message.indexOf(\"callee\")) return !0;\n }\n return !1;\n }(r)) return \"arguments\";\n if (function(r) {\n return r instanceof Date || \"function\" == typeof r.toDateString && \"function\" == typeof r.getDate && \"function\" == typeof r.setDate;\n }(r)) return \"date\";\n if (function(r) {\n return r instanceof Error || \"string\" == typeof r.message && r.constructor && \"number\" == typeof r.constructor.stackTraceLimit;\n }(r)) return \"error\";\n if (function(r) {\n return r instanceof RegExp || \"string\" == typeof r.flags && \"boolean\" == typeof r.ignoreCase && \"boolean\" == typeof r.multiline && \"boolean\" == typeof r.global;\n }(r)) return \"regexp\";\n switch(o(r)){\n case \"Symbol\":\n return \"symbol\";\n case \"Promise\":\n return \"promise\";\n case \"WeakMap\":\n return \"weakmap\";\n case \"WeakSet\":\n return \"weakset\";\n case \"Map\":\n return \"map\";\n case \"Set\":\n return \"set\";\n case \"Int8Array\":\n return \"int8array\";\n case \"Uint8Array\":\n return \"uint8array\";\n case \"Uint8ClampedArray\":\n return \"uint8clampedarray\";\n case \"Int16Array\":\n return \"int16array\";\n case \"Uint16Array\":\n return \"uint16array\";\n case \"Int32Array\":\n return \"int32array\";\n case \"Uint32Array\":\n return \"uint32array\";\n case \"Float32Array\":\n return \"float32array\";\n case \"Float64Array\":\n return \"float64array\";\n }\n if (function(r) {\n return \"function\" == typeof r.throw && \"function\" == typeof r.return && \"function\" == typeof r.next;\n }(r)) return \"generator\";\n switch(t = n.call(r)){\n case \"[object Object]\":\n return \"object\";\n case \"[object Map Iterator]\":\n return \"mapiterator\";\n case \"[object Set Iterator]\":\n return \"setiterator\";\n case \"[object String Iterator]\":\n return \"stringiterator\";\n case \"[object Array Iterator]\":\n return \"arrayiterator\";\n }\n return t.slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n };\n function o(r) {\n return r.constructor ? r.constructor.name : null;\n }\n function f(r, t) {\n var e = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : [\n \"option\"\n ];\n return s(r, t, e), y(r, t, e), function(a, i, u) {\n var r = c(i), t = c(a);\n if (\"object\" === r) {\n if (\"object\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'object' type, but got '\").concat(t, \"'\"));\n Object.keys(i).forEach(function(r) {\n var t = a[r], e = i[r], n = u.slice();\n n.push(r), s(t, e, n), y(t, e, n), f(t, e, n);\n });\n }\n if (\"array\" === r) {\n if (\"array\" !== t) throw new Error(\"[Type Error]: '\".concat(u.join(\".\"), \"' require 'array' type, but got '\").concat(t, \"'\"));\n a.forEach(function(r, t) {\n var e = a[t], n = i[t] || i[0], o = u.slice();\n o.push(t), s(e, n, o), y(e, n, o), f(e, n, o);\n });\n }\n }(r, t, e), r;\n }\n function s(r, t, e) {\n if (\"string\" === c(t)) {\n var n = c(r);\n if (\"?\" === t[0] && (t = t.slice(1) + \"|undefined\"), !(-1 < t.indexOf(\"|\") ? t.split(\"|\").map(function(r) {\n return r.toLowerCase().trim();\n }).filter(Boolean).some(function(r) {\n return n === r;\n }) : t.toLowerCase().trim() === n)) throw new Error(\"[Type Error]: '\".concat(e.join(\".\"), \"' require '\").concat(t, \"' type, but got '\").concat(n, \"'\"));\n }\n }\n function y(r, t, e) {\n if (\"function\" === c(t)) {\n var n = t(r, c(r), e);\n if (!0 !== n) {\n var o = c(n);\n throw \"string\" === o ? new Error(n) : \"error\" === o ? n : new Error(\"[Validator Error]: The scheme for '\".concat(e.join(\".\"), \"' validator require return true, but got '\").concat(n, \"'\"));\n }\n }\n }\n return f.kindOf = c, f;\n});\n\n},{}],\"evjIj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Emitter {\n on(name, fn, ctx) {\n const e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn,\n ctx\n });\n return this;\n }\n once(name, fn, ctx) {\n const self = this;\n function listener(...args) {\n self.off(name, listener);\n fn.apply(ctx, args);\n }\n listener._ = fn;\n return this.on(name, listener, ctx);\n }\n emit(name, ...data) {\n const evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n for(let i = 0; i < evtArr.length; i += 1)evtArr[i].fn.apply(evtArr[i].ctx, data);\n return this;\n }\n off(name, callback) {\n const e = this.e || (this.e = {});\n const evts = e[name];\n const liveEvents = [];\n if (evts && callback) {\n for(let i = 0, len = evts.length; i < len; i += 1)if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]);\n }\n if (liveEvents.length) e[name] = liveEvents;\n else delete e[name];\n return this;\n }\n}\nexports.default = Emitter;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"w4pLy\":[function(require,module,exports,__globalThis) {\nexports.interopDefault = function(a) {\n return a && a.__esModule ? a : {\n default: a\n };\n};\nexports.defineInteropFlag = function(a) {\n Object.defineProperty(a, '__esModule', {\n value: true\n });\n};\nexports.exportAll = function(source, dest) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) return;\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function() {\n return source[key];\n }\n });\n });\n return dest;\n};\nexports.export = function(dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get\n });\n};\n\n},{}],\"2zmtQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nparcelHelpers.exportAll(_dom, exports);\nvar _error = require(\"./error\");\nparcelHelpers.exportAll(_error, exports);\nvar _subtitle = require(\"./subtitle\");\nparcelHelpers.exportAll(_subtitle, exports);\nvar _file = require(\"./file\");\nparcelHelpers.exportAll(_file, exports);\nvar _property = require(\"./property\");\nparcelHelpers.exportAll(_property, exports);\nvar _time = require(\"./time\");\nparcelHelpers.exportAll(_time, exports);\nvar _format = require(\"./format\");\nparcelHelpers.exportAll(_format, exports);\nvar _compatibility = require(\"./compatibility\");\nparcelHelpers.exportAll(_compatibility, exports);\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"./subtitle\":\"NXvdl\",\"./file\":\"9RWGQ\",\"./property\":\"bfNe9\",\"./time\":\"afTRg\",\"./format\":\"1I37O\",\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"6a4fx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"query\", ()=>query);\nparcelHelpers.export(exports, \"queryAll\", ()=>queryAll);\nparcelHelpers.export(exports, \"addClass\", ()=>addClass);\nparcelHelpers.export(exports, \"removeClass\", ()=>removeClass);\nparcelHelpers.export(exports, \"hasClass\", ()=>hasClass);\nparcelHelpers.export(exports, \"append\", ()=>append);\nparcelHelpers.export(exports, \"remove\", ()=>remove);\nparcelHelpers.export(exports, \"setStyle\", ()=>setStyle);\nparcelHelpers.export(exports, \"setStyles\", ()=>setStyles);\nparcelHelpers.export(exports, \"getStyle\", ()=>getStyle);\nparcelHelpers.export(exports, \"siblings\", ()=>siblings);\nparcelHelpers.export(exports, \"inverseClass\", ()=>inverseClass);\nparcelHelpers.export(exports, \"tooltip\", ()=>tooltip);\nparcelHelpers.export(exports, \"isInViewport\", ()=>isInViewport);\nparcelHelpers.export(exports, \"includeFromEvent\", ()=>includeFromEvent);\nparcelHelpers.export(exports, \"replaceElement\", ()=>replaceElement);\nparcelHelpers.export(exports, \"createElement\", ()=>createElement);\nparcelHelpers.export(exports, \"getIcon\", ()=>getIcon);\nparcelHelpers.export(exports, \"setStyleText\", ()=>setStyleText);\nparcelHelpers.export(exports, \"supportsFlex\", ()=>supportsFlex);\nparcelHelpers.export(exports, \"getRect\", ()=>getRect);\nparcelHelpers.export(exports, \"loadImg\", ()=>loadImg);\nvar _compatibility = require(\"./compatibility\");\nfunction query(selector, parent = document) {\n return parent.querySelector(selector);\n}\nfunction queryAll(selector, parent = document) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction addClass(target, className) {\n return target.classList.add(className);\n}\nfunction removeClass(target, className) {\n return target.classList.remove(className);\n}\nfunction hasClass(target, className) {\n return target.classList.contains(className);\n}\nfunction append(parent, child) {\n if (child instanceof Element) parent.appendChild(child);\n else parent.insertAdjacentHTML('beforeend', String(child));\n return parent.lastElementChild || parent.lastChild;\n}\nfunction remove(child) {\n return child.parentNode.removeChild(child);\n}\nfunction setStyle(element, key, value) {\n element.style[key] = value;\n return element;\n}\nfunction setStyles(element, styles) {\n for(const key in styles)setStyle(element, key, styles[key]);\n return element;\n}\nfunction getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\nfunction siblings(target) {\n return Array.from(target.parentElement.children).filter((item)=>item !== target);\n}\nfunction inverseClass(target, className) {\n siblings(target).forEach((item)=>removeClass(item, className));\n addClass(target, className);\n}\nfunction tooltip(target, msg, pos = 'top') {\n if (0, _compatibility.isMobile) return;\n target.setAttribute('aria-label', msg);\n addClass(target, 'hint--rounded');\n addClass(target, `hint--${pos}`);\n}\nfunction 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}\nfunction includeFromEvent(event, target) {\n return event.composedPath && event.composedPath().indexOf(target) > -1;\n}\nfunction replaceElement(newChild, oldChild) {\n oldChild.parentNode.replaceChild(newChild, oldChild);\n return newChild;\n}\nfunction createElement(tag) {\n return document.createElement(tag);\n}\nfunction 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}\nfunction 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') document.addEventListener('DOMContentLoaded', ()=>{\n document.head.appendChild($style);\n });\n else (document.head || document.documentElement).appendChild($style);\n }\n $style.textContent = style;\n}\nfunction supportsFlex() {\n const div = document.createElement('div');\n div.style.display = 'flex';\n return div.style.display === 'flex';\n}\nfunction getRect(el) {\n return el.getBoundingClientRect();\n}\nfunction loadImg(url, scale) {\n return new Promise((resolve, reject)=>{\n const img = new Image();\n img.onload = function() {\n if (!scale || scale === 1) 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 canvas.toBlob((blob)=>{\n const blobUrl = URL.createObjectURL(blob);\n const scaledImg = new Image();\n scaledImg.onload = function() {\n resolve(scaledImg);\n };\n scaledImg.onerror = function() {\n URL.revokeObjectURL(blobUrl);\n reject(new Error(`Image load failed: ${url}`));\n };\n scaledImg.src = blobUrl;\n });\n }\n };\n img.onerror = function() {\n reject(new Error(`Image load failed: ${url}`));\n };\n img.src = url;\n });\n}\n\n},{\"./compatibility\":\"lHM5L\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lHM5L\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"userAgent\", ()=>userAgent);\nparcelHelpers.export(exports, \"isSafari\", ()=>isSafari);\nparcelHelpers.export(exports, \"isWechat\", ()=>isWechat);\nparcelHelpers.export(exports, \"isIE\", ()=>isIE);\nparcelHelpers.export(exports, \"isAndroid\", ()=>isAndroid);\nparcelHelpers.export(exports, \"isIOS\", ()=>isIOS);\nparcelHelpers.export(exports, \"isIOS13\", ()=>isIOS13);\nparcelHelpers.export(exports, \"isMobile\", ()=>isMobile);\nparcelHelpers.export(exports, \"isBrowser\", ()=>isBrowser);\nconst userAgent = globalThis?.CUSTOM_USER_AGENT ?? (typeof navigator !== 'undefined' ? navigator.userAgent : '');\nconst isSafari = /^((?!chrome|android).)*safari/i.test(userAgent);\nconst isWechat = /MicroMessenger/i.test(userAgent);\nconst isIE = /MSIE|Trident/i.test(userAgent);\nconst isAndroid = /android/i.test(userAgent);\nconst isIOS = /iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream;\nconst isIOS13 = isIOS || userAgent.includes('Macintosh') && navigator.maxTouchPoints >= 1;\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent) || isIOS13;\nconst isBrowser = typeof window !== 'undefined';\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"anKPB\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ArtPlayerError\", ()=>ArtPlayerError);\nparcelHelpers.export(exports, \"errorHandle\", ()=>errorHandle);\nclass ArtPlayerError extends Error {\n constructor(message, context){\n super(message);\n if (typeof Error.captureStackTrace === 'function') Error.captureStackTrace(this, context || this.constructor);\n this.name = 'ArtPlayerError';\n }\n}\nfunction errorHandle(condition, msg) {\n if (!condition) throw new ArtPlayerError(msg);\n return condition;\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"NXvdl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"srtToVtt\", ()=>srtToVtt);\nparcelHelpers.export(exports, \"vttToBlob\", ()=>vttToBlob);\nparcelHelpers.export(exports, \"assToVtt\", ()=>assToVtt);\nfunction 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) ms = $2 + '00';\n if ($2.length === 2) ms = $2 + '0';\n return `${$1},${ms}`;\n });\n}\nfunction srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(fixSrt(srtText).replace(/\\{\\\\([ibu])\\}/g, '').replace(/\\{\\\\([ibu])1\\}/g, '<$1>').replace(/\\{([ibu])\\}/g, '<$1>').replace(/\\{\\/([ibu])\\}/g, '').replace(/(\\d\\d:\\d\\d:\\d\\d),(\\d\\d\\d)/g, '$1.$2').replace(/{[\\s\\S]*?}/g, '').concat('\\r\\n\\r\\n'));\n}\nfunction vttToBlob(vttText) {\n return URL.createObjectURL(new Blob([\n vttText\n ], {\n type: 'text/vtt'\n }));\n}\nfunction assToVtt(ass) {\n const reAss = new RegExp(\"Dialogue:\\\\s\\\\d,(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\\\s\\\\S]*)$\", 'i');\n function fixTime(time = '') {\n return time.split(/[:.]/).map((item, index, arr)=>{\n if (index === arr.length - 1) {\n if (item.length === 1) return `.${item}00`;\n if (item.length === 2) return `.${item}0`;\n } else if (item.length === 1) return (index === 0 ? '0' : ':0') + item;\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n }).join('');\n }\n return \"WEBVTT\\n\\n\" + ass.split(/\\r?\\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].replace(/{[\\s\\S]*?}/g, '').replace(/(\\\\N)/g, '\\n').trim().split(/\\r?\\n/).map((item)=>item.trim()).join('\\n')\n };\n }).filter((line)=>line).map((line, index)=>{\n if (line) return index + 1 + '\\n' + `${line.start} --> ${line.end}` + '\\n' + `${line.text}`;\n return '';\n }).filter((line)=>line.trim()).join('\\n\\n');\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9RWGQ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getExt\", ()=>getExt);\nparcelHelpers.export(exports, \"download\", ()=>download);\nfunction getExt(url) {\n if (url.includes('?')) return getExt(url.split('?')[0]);\n if (url.includes('#')) return getExt(url.split('#')[0]);\n return url.trim().toLowerCase().split('.').pop();\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"bfNe9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"def\", ()=>def);\nparcelHelpers.export(exports, \"has\", ()=>has);\nparcelHelpers.export(exports, \"get\", ()=>get);\nparcelHelpers.export(exports, \"mergeDeep\", ()=>mergeDeep);\nconst def = Object.defineProperty;\nconst { hasOwnProperty } = Object.prototype;\nfunction has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\nfunction get(obj, name) {\n return Object.getOwnPropertyDescriptor(obj, name);\n}\nfunction 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)) prev[key] = pVal.concat(...oVal);\n else if (isObject(pVal) && isObject(oVal)) prev[key] = mergeDeep(pVal, oVal);\n else prev[key] = oVal;\n });\n return prev;\n }, {});\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"afTRg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"sleep\", ()=>sleep);\nparcelHelpers.export(exports, \"debounce\", ()=>debounce);\nparcelHelpers.export(exports, \"throttle\", ()=>throttle);\nfunction sleep(ms = 0) {\n return new Promise((resolve)=>setTimeout(resolve, ms));\n}\nfunction debounce(func, duration) {\n let timeout;\n return function(...args) {\n const effect = ()=>{\n timeout = null;\n return func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(effect, duration);\n };\n}\nfunction throttle(func, duration) {\n let shouldWait = false;\n return function(...args) {\n if (!shouldWait) {\n func.apply(this, args);\n shouldWait = true;\n setTimeout(function() {\n shouldWait = false;\n }, duration);\n }\n };\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1I37O\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"clamp\", ()=>clamp);\nparcelHelpers.export(exports, \"capitalize\", ()=>capitalize);\nparcelHelpers.export(exports, \"secondToTime\", ()=>secondToTime);\nparcelHelpers.export(exports, \"escape\", ()=>escape);\nparcelHelpers.export(exports, \"unescape\", ()=>unescape);\nfunction clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction 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 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n}\nfunction escape(str) {\n return str.replace(/[&<>'\"]/g, (tag)=>({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"'\n })[tag] || tag);\n}\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lGoF1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"ComponentOption\", ()=>ComponentOption);\nvar _utils = require(\"../utils\");\nconst a = 'array';\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst f = 'function';\nfunction validElement(value, type, paths) {\n return (0, _utils.errorHandle)(type === s || type === n || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\nconst 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};\nexports.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: [\n f\n ],\n layers: [\n ComponentOption\n ],\n contextmenu: [\n ComponentOption\n ],\n settings: [\n ComponentOption\n ],\n controls: [\n {\n ...ComponentOption,\n position: (value, _, paths)=>{\n const position = [\n 'top',\n 'left',\n 'right'\n ];\n return (0, _utils.errorHandle)(position.includes(value), `${paths.join('.')} only accept ${position.toString()} as parameters`);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"auZaO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nexports.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: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ],\n prototypes: [\n 'width',\n 'height',\n 'videoWidth',\n 'videoHeight',\n 'poster',\n 'webkitDecodedFrameCount',\n 'webkitDroppedFrameCount',\n 'playsInline',\n 'webkitSupportsFullscreen',\n 'webkitDisplayingFullscreen',\n 'onenterpictureinpicture',\n 'onleavepictureinpicture',\n 'disablePictureInPicture',\n 'cancelVideoFrameCallback',\n 'requestVideoFrameCallback',\n 'getVideoPlaybackQuality',\n 'requestPictureInPicture',\n 'webkitEnterFullScreen',\n 'webkitEnterFullscreen',\n 'webkitExitFullScreen',\n 'webkitExitFullscreen'\n ]\n};\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1uh6E\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _packageJson = require(\"../package.json\");\nvar _utils = require(\"./utils\");\nclass Template {\n constructor(art){\n this.art = art;\n const { option, constructor } = art;\n if (option.container instanceof Element) this.$container = option.container;\n else {\n this.$container = (0, _utils.query)(option.container);\n (0, _utils.errorHandle)(this.$container, `No container element found by ${option.container}`);\n }\n (0, _utils.errorHandle)((0, _utils.supportsFlex)(), 'The current browser does not support flex layout');\n const type = this.$container.tagName.toLowerCase();\n (0, _utils.errorHandle)(type === 'div', `Unsupported container element type, only support 'div' but got '${type}'`);\n (0, _utils.errorHandle)(constructor.instances.every((ins)=>ins.template.$container !== this.$container), 'Cannot mount multiple instances on the same dom element');\n this.query = this.query.bind(this);\n this.$container.dataset.artId = art.id;\n this.init();\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
${0, _packageJson.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 query(className) {\n return (0, _utils.query)(className, this.$container);\n }\n init() {\n const { option } = this.art;\n if (!option.useSSR) this.$container.innerHTML = Template.html;\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 if (option.proxy) {\n const video = option.proxy.call(this.art, this.art);\n (0, _utils.errorHandle)(video instanceof HTMLVideoElement || video instanceof HTMLCanvasElement, `Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'`);\n (0, _utils.replaceElement)(video, this.$video);\n video.className = 'art-video';\n this.$video = video;\n }\n if (option.backdrop) (0, _utils.addClass)(this.$player, 'art-backdrop');\n if (0, _utils.isMobile) (0, _utils.addClass)(this.$player, 'art-mobile');\n }\n destroy(removeHtml) {\n this.$video.src = '';\n if (removeHtml) this.$container.innerHTML = '';\n else (0, _utils.addClass)(this.$player, 'art-destroy');\n }\n}\nexports.default = Template;\n\n},{\"../package.json\":\"3QATz\",\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3udCS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _zhCn = require(\"./zh-cn\");\nvar _zhCnDefault = parcelHelpers.interopDefault(_zhCn);\nclass I18n {\n constructor(art){\n this.art = art;\n this.languages = {\n 'zh-cn': (0, _zhCnDefault.default)\n };\n this.language = {};\n this.update(art.option.i18n);\n }\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n get(key) {\n return this.language[key] || key;\n }\n update(value) {\n this.languages = (0, _utils.mergeDeep)(this.languages, value);\n this.init();\n }\n}\nexports.default = I18n;\n\n},{\"../utils\":\"2zmtQ\",\"./zh-cn\":\"3CYMl\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3CYMl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst zhCn = {\n 'Video Info': \"\\u7EDF\\u8BA1\\u4FE1\\u606F\",\n Close: \"\\u5173\\u95ED\",\n 'Video Load Failed': \"\\u52A0\\u8F7D\\u5931\\u8D25\",\n Volume: \"\\u97F3\\u91CF\",\n Play: \"\\u64AD\\u653E\",\n Pause: \"\\u6682\\u505C\",\n Rate: \"\\u901F\\u5EA6\",\n Mute: \"\\u9759\\u97F3\",\n 'Video Flip': \"\\u753B\\u9762\\u7FFB\\u8F6C\",\n Horizontal: \"\\u6C34\\u5E73\",\n Vertical: \"\\u5782\\u76F4\",\n Reconnect: \"\\u91CD\\u65B0\\u8FDE\\u63A5\",\n 'Show Setting': \"\\u663E\\u793A\\u8BBE\\u7F6E\",\n 'Hide Setting': \"\\u9690\\u85CF\\u8BBE\\u7F6E\",\n Screenshot: \"\\u622A\\u56FE\",\n 'Play Speed': \"\\u64AD\\u653E\\u901F\\u5EA6\",\n 'Aspect Ratio': \"\\u753B\\u9762\\u6BD4\\u4F8B\",\n Default: \"\\u9ED8\\u8BA4\",\n Normal: \"\\u6B63\\u5E38\",\n Open: \"\\u6253\\u5F00\",\n 'Switch Video': \"\\u5207\\u6362\",\n 'Switch Subtitle': \"\\u5207\\u6362\\u5B57\\u5E55\",\n Fullscreen: \"\\u5168\\u5C4F\",\n 'Exit Fullscreen': \"\\u9000\\u51FA\\u5168\\u5C4F\",\n 'Web Fullscreen': \"\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Exit Web Fullscreen': \"\\u9000\\u51FA\\u7F51\\u9875\\u5168\\u5C4F\",\n 'Mini Player': \"\\u8FF7\\u4F60\\u64AD\\u653E\\u5668\",\n 'PIP Mode': \"\\u5F00\\u542F\\u753B\\u4E2D\\u753B\",\n 'Exit PIP Mode': \"\\u9000\\u51FA\\u753B\\u4E2D\\u753B\",\n 'PIP Not Supported': \"\\u4E0D\\u652F\\u6301\\u753B\\u4E2D\\u753B\",\n 'Fullscreen Not Supported': \"\\u4E0D\\u652F\\u6301\\u5168\\u5C4F\",\n 'Subtitle Offset': \"\\u5B57\\u5E55\\u504F\\u79FB\",\n 'Last Seen': \"\\u4E0A\\u6B21\\u770B\\u5230\",\n 'Jump Play': \"\\u8DF3\\u8F6C\\u64AD\\u653E\",\n AirPlay: \"\\u9694\\u7A7A\\u64AD\\u653E\",\n 'AirPlay Not Available': \"\\u9694\\u7A7A\\u64AD\\u653E\\u4E0D\\u53EF\\u7528\"\n};\nexports.default = zhCn;\nif (typeof window !== 'undefined') window['artplayer-i18n-zh-cn'] = zhCn;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9mB1U\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _urlMix = require(\"./urlMix\");\nvar _urlMixDefault = parcelHelpers.interopDefault(_urlMix);\nvar _attrMix = require(\"./attrMix\");\nvar _attrMixDefault = parcelHelpers.interopDefault(_attrMix);\nvar _playMix = require(\"./playMix\");\nvar _playMixDefault = parcelHelpers.interopDefault(_playMix);\nvar _pauseMix = require(\"./pauseMix\");\nvar _pauseMixDefault = parcelHelpers.interopDefault(_pauseMix);\nvar _toggleMix = require(\"./toggleMix\");\nvar _toggleMixDefault = parcelHelpers.interopDefault(_toggleMix);\nvar _seekMix = require(\"./seekMix\");\nvar _seekMixDefault = parcelHelpers.interopDefault(_seekMix);\nvar _volumeMix = require(\"./volumeMix\");\nvar _volumeMixDefault = parcelHelpers.interopDefault(_volumeMix);\nvar _currentTimeMix = require(\"./currentTimeMix\");\nvar _currentTimeMixDefault = parcelHelpers.interopDefault(_currentTimeMix);\nvar _durationMix = require(\"./durationMix\");\nvar _durationMixDefault = parcelHelpers.interopDefault(_durationMix);\nvar _switchMix = require(\"./switchMix\");\nvar _switchMixDefault = parcelHelpers.interopDefault(_switchMix);\nvar _playbackRateMix = require(\"./playbackRateMix\");\nvar _playbackRateMixDefault = parcelHelpers.interopDefault(_playbackRateMix);\nvar _aspectRatioMix = require(\"./aspectRatioMix\");\nvar _aspectRatioMixDefault = parcelHelpers.interopDefault(_aspectRatioMix);\nvar _screenshotMix = require(\"./screenshotMix\");\nvar _screenshotMixDefault = parcelHelpers.interopDefault(_screenshotMix);\nvar _fullscreenMix = require(\"./fullscreenMix\");\nvar _fullscreenMixDefault = parcelHelpers.interopDefault(_fullscreenMix);\nvar _fullscreenWebMix = require(\"./fullscreenWebMix\");\nvar _fullscreenWebMixDefault = parcelHelpers.interopDefault(_fullscreenWebMix);\nvar _pipMix = require(\"./pipMix\");\nvar _pipMixDefault = parcelHelpers.interopDefault(_pipMix);\nvar _loadedMix = require(\"./loadedMix\");\nvar _loadedMixDefault = parcelHelpers.interopDefault(_loadedMix);\nvar _playedMix = require(\"./playedMix\");\nvar _playedMixDefault = parcelHelpers.interopDefault(_playedMix);\nvar _playingMix = require(\"./playingMix\");\nvar _playingMixDefault = parcelHelpers.interopDefault(_playingMix);\nvar _autoSizeMix = require(\"./autoSizeMix\");\nvar _autoSizeMixDefault = parcelHelpers.interopDefault(_autoSizeMix);\nvar _rectMix = require(\"./rectMix\");\nvar _rectMixDefault = parcelHelpers.interopDefault(_rectMix);\nvar _flipMix = require(\"./flipMix\");\nvar _flipMixDefault = parcelHelpers.interopDefault(_flipMix);\nvar _miniMix = require(\"./miniMix\");\nvar _miniMixDefault = parcelHelpers.interopDefault(_miniMix);\nvar _posterMix = require(\"./posterMix\");\nvar _posterMixDefault = parcelHelpers.interopDefault(_posterMix);\nvar _autoHeightMix = require(\"./autoHeightMix\");\nvar _autoHeightMixDefault = parcelHelpers.interopDefault(_autoHeightMix);\nvar _cssVarMix = require(\"./cssVarMix\");\nvar _cssVarMixDefault = parcelHelpers.interopDefault(_cssVarMix);\nvar _themeMix = require(\"./themeMix\");\nvar _themeMixDefault = parcelHelpers.interopDefault(_themeMix);\nvar _typeMix = require(\"./typeMix\");\nvar _typeMixDefault = parcelHelpers.interopDefault(_typeMix);\nvar _stateMix = require(\"./stateMix\");\nvar _stateMixDefault = parcelHelpers.interopDefault(_stateMix);\nvar _subtitleOffsetMix = require(\"./subtitleOffsetMix\");\nvar _subtitleOffsetMixDefault = parcelHelpers.interopDefault(_subtitleOffsetMix);\nvar _airplayMix = require(\"./airplayMix\");\nvar _airplayMixDefault = parcelHelpers.interopDefault(_airplayMix);\nvar _qualityMix = require(\"./qualityMix\");\nvar _qualityMixDefault = parcelHelpers.interopDefault(_qualityMix);\nvar _thumbnailsMix = require(\"./thumbnailsMix\");\nvar _thumbnailsMixDefault = parcelHelpers.interopDefault(_thumbnailsMix);\nvar _optionInit = require(\"./optionInit\");\nvar _optionInitDefault = parcelHelpers.interopDefault(_optionInit);\nvar _eventInit = require(\"./eventInit\");\nvar _eventInitDefault = parcelHelpers.interopDefault(_eventInit);\nclass Player {\n constructor(art){\n (0, _urlMixDefault.default)(art);\n (0, _attrMixDefault.default)(art);\n (0, _playMixDefault.default)(art);\n (0, _pauseMixDefault.default)(art);\n (0, _toggleMixDefault.default)(art);\n (0, _seekMixDefault.default)(art);\n (0, _volumeMixDefault.default)(art);\n (0, _currentTimeMixDefault.default)(art);\n (0, _durationMixDefault.default)(art);\n (0, _switchMixDefault.default)(art);\n (0, _playbackRateMixDefault.default)(art);\n (0, _aspectRatioMixDefault.default)(art);\n (0, _screenshotMixDefault.default)(art);\n (0, _fullscreenMixDefault.default)(art);\n (0, _fullscreenWebMixDefault.default)(art);\n (0, _pipMixDefault.default)(art);\n (0, _loadedMixDefault.default)(art);\n (0, _playedMixDefault.default)(art);\n (0, _playingMixDefault.default)(art);\n (0, _autoSizeMixDefault.default)(art);\n (0, _rectMixDefault.default)(art);\n (0, _flipMixDefault.default)(art);\n (0, _miniMixDefault.default)(art);\n (0, _posterMixDefault.default)(art);\n (0, _autoHeightMixDefault.default)(art);\n (0, _cssVarMixDefault.default)(art);\n (0, _themeMixDefault.default)(art);\n (0, _typeMixDefault.default)(art);\n (0, _stateMixDefault.default)(art);\n (0, _subtitleOffsetMixDefault.default)(art);\n (0, _airplayMixDefault.default)(art);\n (0, _qualityMixDefault.default)(art);\n (0, _thumbnailsMixDefault.default)(art);\n (0, _eventInitDefault.default)(art);\n (0, _optionInitDefault.default)(art);\n }\n}\nexports.default = Player;\n\n},{\"./urlMix\":\"gOtyE\",\"./attrMix\":\"53BhY\",\"./playMix\":\"1banF\",\"./pauseMix\":\"3wC1g\",\"./toggleMix\":\"27lNh\",\"./seekMix\":\"h3e53\",\"./volumeMix\":\"7ZLkO\",\"./currentTimeMix\":\"e6oTn\",\"./durationMix\":\"asbQ7\",\"./switchMix\":\"5l7tM\",\"./playbackRateMix\":\"dHiZV\",\"./aspectRatioMix\":\"7TM4D\",\"./screenshotMix\":\"9LouN\",\"./fullscreenMix\":\"dYSsN\",\"./fullscreenWebMix\":\"fF9Os\",\"./pipMix\":\"hDMWY\",\"./loadedMix\":\"7RkX2\",\"./playedMix\":\"jXVGX\",\"./playingMix\":\"5vvMN\",\"./autoSizeMix\":\"eukuj\",\"./rectMix\":\"dSo4g\",\"./flipMix\":\"dJ7GF\",\"./miniMix\":\"kZI2p\",\"./posterMix\":\"fIZNk\",\"./autoHeightMix\":\"24b5p\",\"./cssVarMix\":\"gK6U1\",\"./themeMix\":\"aIG6s\",\"./typeMix\":\"i5sGy\",\"./stateMix\":\"juKiS\",\"./subtitleOffsetMix\":\"arSae\",\"./airplayMix\":\"kIugI\",\"./qualityMix\":\"lDgAt\",\"./thumbnailsMix\":\"5Mloy\",\"./optionInit\":\"a5DcW\",\"./eventInit\":\"jpd3q\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gOtyE\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>urlMix);\nvar _utils = require(\"../utils\");\nfunction urlMix(art) {\n const { option, template: { $video } } = art;\n (0, _utils.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 || (0, _utils.getExt)(newUrl);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n await (0, _utils.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 if (oldUrl !== art.url) {\n art.option.url = newUrl;\n if (art.isReady && oldUrl) art.once('video:canplay', ()=>{\n art.emit('restart', newUrl);\n });\n }\n } else {\n await (0, _utils.sleep)();\n art.loading.show = true;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"53BhY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>attrMix);\nvar _utils = require(\"../utils\");\nfunction attrMix(art) {\n const { template: { $video } } = art;\n (0, _utils.def)(art, 'attr', {\n value (key, value) {\n if (value === undefined) return $video[key];\n $video[key] = value;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1banF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playMix);\nvar _utils = require(\"../utils\");\nfunction playMix(art) {\n const { i18n, notice, option, constructor: { instances }, template: { $video } } = art;\n (0, _utils.def)(art, 'play', {\n value: async function() {\n const result = await $video.play();\n notice.show = i18n.get('Play');\n art.emit('play');\n if (option.mutex) for(let index = 0; index < instances.length; index++){\n const instance = instances[index];\n if (instance !== art) instance.pause();\n }\n return result;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3wC1g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pauseMix);\nvar _utils = require(\"../utils\");\nfunction pauseMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"27lNh\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>toggleMix);\nvar _utils = require(\"../utils\");\nfunction toggleMix(art) {\n (0, _utils.def)(art, 'toggle', {\n value () {\n if (art.playing) return art.pause();\n else return art.play();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"h3e53\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>seekMix);\nvar _utils = require(\"../utils\");\nfunction seekMix(art) {\n const { notice } = art;\n (0, _utils.def)(art, 'seek', {\n set (time) {\n art.currentTime = time;\n if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n art.emit('seek', art.currentTime);\n }\n });\n (0, _utils.def)(art, 'forward', {\n set (time) {\n art.seek = art.currentTime + time;\n }\n });\n (0, _utils.def)(art, 'backward', {\n set (time) {\n art.seek = art.currentTime - time;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7ZLkO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volumeMix);\nvar _utils = require(\"../utils\");\nfunction volumeMix(art) {\n const { template: { $video }, i18n, notice, storage } = art;\n (0, _utils.def)(art, 'volume', {\n get: ()=>$video.volume || 0,\n set: (percentage)=>{\n $video.volume = (0, _utils.clamp)(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) storage.set('volume', $video.volume);\n }\n });\n (0, _utils.def)(art, 'muted', {\n get: ()=>$video.muted,\n set: (muted)=>{\n $video.muted = muted;\n art.emit('muted', muted);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"e6oTn\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>currentTimeMix);\nvar _utils = require(\"../utils\");\nfunction currentTimeMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'currentTime', {\n get: ()=>$video.currentTime || 0,\n set: (time)=>{\n time = parseFloat(time);\n if (Number.isNaN(time)) return;\n $video.currentTime = (0, _utils.clamp)(time, 0, art.duration);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"asbQ7\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>durationMix);\nvar _utils = require(\"../utils\");\nfunction durationMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5l7tM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>switchMix);\nvar _utils = require(\"../utils\");\nfunction 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 art.pause();\n art.url = url;\n art.notice.show = '';\n art.once('video:error', reject);\n art.once('video:loadedmetadata', ()=>{\n art.currentTime = currentTime;\n });\n art.once('video:canplay', async ()=>{\n art.playbackRate = playbackRate;\n art.aspectRatio = aspectRatio;\n if (playing) await art.play();\n art.notice.show = '';\n resolve();\n });\n });\n }\n (0, _utils.def)(art, 'switchQuality', {\n value: (url)=>{\n return switchUrl(url, art.currentTime);\n }\n });\n (0, _utils.def)(art, 'switchUrl', {\n value: (url)=>{\n return switchUrl(url, 0);\n }\n });\n (0, _utils.def)(art, 'switch', {\n set: art.switchUrl\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dHiZV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRateMix);\nvar _utils = require(\"../utils\");\nfunction playbackRateMix(art) {\n const { template: { $video }, i18n, notice } = art;\n (0, _utils.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 art.playbackRate = 1;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7TM4D\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatioMix);\nvar _utils = require(\"../utils\");\nfunction aspectRatioMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n (0, _utils.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 (0, _utils.setStyle)($video, 'width', null);\n (0, _utils.setStyle)($video, 'height', null);\n (0, _utils.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 if (playerRatio > setupRatio) {\n (0, _utils.setStyle)($video, 'width', `${setupRatio * clientHeight}px`);\n (0, _utils.setStyle)($video, 'height', '100%');\n (0, _utils.setStyle)($video, 'margin', '0 auto');\n } else {\n (0, _utils.setStyle)($video, 'width', '100%');\n (0, _utils.setStyle)($video, 'height', `${clientWidth / setupRatio}px`);\n (0, _utils.setStyle)($video, 'margin', 'auto 0');\n }\n $player.dataset.aspectRatio = ratio;\n }\n notice.show = `${i18n.get('Aspect Ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LouN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshotMix);\nvar _utils = require(\"../utils\");\nfunction screenshotMix(art) {\n const { notice, template: { $video } } = art;\n const $canvas = (0, _utils.createElement)('canvas');\n (0, _utils.def)(art, 'getDataURL', {\n value: ()=>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 (0, _utils.def)(art, 'getBlobUrl', {\n value: ()=>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 (0, _utils.def)(art, 'screenshot', {\n value: async (name)=>{\n const dataUri = await art.getDataURL();\n const fileName = name || `artplayer_${(0, _utils.secondToTime)($video.currentTime)}`;\n (0, _utils.download)(dataUri, `${fileName}.png`);\n art.emit('screenshot', dataUri);\n return dataUri;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dYSsN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenMix);\nvar _screenfull = require(\"../libs/screenfull\");\nvar _screenfullDefault = parcelHelpers.interopDefault(_screenfull);\nvar _utils = require(\"../utils\");\nfunction fullscreenMix(art) {\n const { i18n, notice, template: { $video, $player } } = art;\n const nativeScreenfull = (art)=>{\n (0, _screenfullDefault.default).on('change', ()=>{\n art.emit('fullscreen', (0, _screenfullDefault.default).isFullscreen);\n if ((0, _screenfullDefault.default).isFullscreen) {\n art.state = 'fullscreen';\n (0, _utils.addClass)($player, 'art-fullscreen');\n } else (0, _utils.removeClass)($player, 'art-fullscreen');\n art.emit('resize');\n });\n (0, _screenfullDefault.default).on('error', (event)=>{\n art.emit('fullscreenError', event);\n });\n (0, _utils.def)(art, 'fullscreen', {\n get () {\n return (0, _screenfullDefault.default).isFullscreen;\n },\n async set (value) {\n if (value) await (0, _screenfullDefault.default).request($player);\n else await (0, _screenfullDefault.default).exit();\n }\n });\n };\n const webkitScreenfull = (art)=>{\n art.proxy(document, 'webkitfullscreenchange', ()=>{\n art.emit('fullscreen', art.fullscreen);\n art.emit('resize');\n });\n (0, _utils.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 $video.webkitExitFullscreen();\n }\n });\n };\n art.once('video:loadedmetadata', ()=>{\n if ((0, _screenfullDefault.default).isEnabled) nativeScreenfull(art);\n else if ($video.webkitSupportsFullscreen) webkitScreenfull(art);\n else (0, _utils.def)(art, 'fullscreen', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('Fullscreen Not Supported');\n }\n });\n // Asynchronous setting\n (0, _utils.def)(art, 'fullscreen', (0, _utils.get)(art, 'fullscreen'));\n });\n}\n\n},{\"../libs/screenfull\":\"9CUfT\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9CUfT\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nconst 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];\nconst nativeAPI = (()=>{\n if (typeof document === 'undefined') return false;\n const unprefixedMethods = methodMap[0];\n const returnValue = {};\n for (const methodList of methodMap){\n const exitFullscreenMethod = methodList[1];\n if (exitFullscreenMethod in document) {\n for (const [index, method] of methodList.entries())returnValue[unprefixedMethods[index]] = method;\n return returnValue;\n }\n }\n return false;\n})();\nconst eventNameMap = {\n change: nativeAPI.fullscreenchange,\n error: nativeAPI.fullscreenerror\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 screenfull.on('change', onFullScreenEntered);\n const returnPromise = element[nativeAPI.requestFullscreen](options);\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenEntered).catch(reject);\n });\n },\n exit () {\n return new Promise((resolve, reject)=>{\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n const onFullScreenExit = ()=>{\n screenfull.off('change', onFullScreenExit);\n resolve();\n };\n screenfull.on('change', onFullScreenExit);\n const returnPromise = document[nativeAPI.exitFullscreen]();\n if (returnPromise instanceof Promise) returnPromise.then(onFullScreenExit).catch(reject);\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) document.addEventListener(eventName, callback, false);\n },\n off (event, callback) {\n const eventName = eventNameMap[event];\n if (eventName) document.removeEventListener(eventName, callback, false);\n },\n raw: nativeAPI\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});\nif (!nativeAPI) screenfull = {\n isEnabled: false\n};\nexports.default = screenfull;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fF9Os\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWebMix);\nvar _utils = require(\"../utils\");\nfunction fullscreenWebMix(art) {\n const { constructor, template: { $container, $player } } = art;\n let cssText = '';\n (0, _utils.def)(art, 'fullscreenWeb', {\n get () {\n return (0, _utils.hasClass)($player, 'art-fullscreen-web');\n },\n set (value) {\n if (value) {\n cssText = $player.style.cssText;\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)(document.body, $player);\n art.state = 'fullscreenWeb';\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', '100%');\n (0, _utils.addClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', true);\n } else {\n if (constructor.FULLSCREEN_WEB_IN_BODY) (0, _utils.append)($container, $player);\n if (cssText) {\n $player.style.cssText = cssText;\n cssText = '';\n }\n (0, _utils.removeClass)($player, 'art-fullscreen-web');\n art.emit('fullscreenWeb', false);\n }\n art.emit('resize');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hDMWY\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pipMix);\nvar _utils = require(\"../utils\");\nfunction nativePip(art) {\n const { template: { $video }, proxy, notice } = art;\n $video.disablePictureInPicture = false;\n (0, _utils.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 document.exitPictureInPicture().catch((err)=>{\n notice.show = err;\n throw err;\n });\n }\n });\n proxy($video, 'enterpictureinpicture', ()=>{\n art.emit('pip', true);\n });\n proxy($video, 'leavepictureinpicture', ()=>{\n art.emit('pip', false);\n });\n}\nfunction webkitPip(art) {\n const { $video } = art.template;\n $video.webkitSetPresentationMode('inline');\n (0, _utils.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}\nfunction pipMix(art) {\n const { i18n, notice, template: { $video } } = art;\n if (document.pictureInPictureEnabled) nativePip(art);\n else if ($video.webkitSupportsPresentationMode) webkitPip(art);\n else (0, _utils.def)(art, 'pip', {\n get () {\n return false;\n },\n set () {\n notice.show = i18n.get('PIP Not Supported');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7RkX2\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>loadedMix);\nvar _utils = require(\"../utils\");\nfunction loadedMix(art) {\n const { $video } = art.template;\n (0, _utils.def)(art, 'loaded', {\n get: ()=>art.loadedTime / $video.duration\n });\n (0, _utils.def)(art, 'loadedTime', {\n get: ()=>{\n return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jXVGX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playedMix);\nvar _utils = require(\"../utils\");\nfunction playedMix(art) {\n (0, _utils.def)(art, 'played', {\n get: ()=>art.currentTime / art.duration\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5vvMN\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playingMix);\nvar _utils = require(\"../utils\");\nfunction playingMix(art) {\n const { $video } = art.template;\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eukuj\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoSizeMix);\nvar _utils = require(\"../utils\");\nfunction autoSizeMix(art) {\n const { $container, $player, $video } = art.template;\n (0, _utils.def)(art, 'autoSize', {\n value () {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = (0, _utils.getRect)($container);\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n if (containerRatio > videoRatio) {\n const percentage = height * videoRatio / width * 100;\n (0, _utils.setStyle)($player, 'width', `${percentage}%`);\n (0, _utils.setStyle)($player, 'height', '100%');\n } else {\n const percentage = width / videoRatio / height * 100;\n (0, _utils.setStyle)($player, 'width', '100%');\n (0, _utils.setStyle)($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: art.width,\n height: art.height\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dSo4g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>rectMix);\nvar _utils = require(\"../utils\");\nfunction rectMix(art) {\n (0, _utils.def)(art, 'rect', {\n get: ()=>{\n return (0, _utils.getRect)(art.template.$player);\n }\n });\n const keys = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width'\n ];\n for(let index = 0; index < keys.length; index++){\n const key = keys[index];\n (0, _utils.def)(art, key, {\n get: ()=>{\n return art.rect[key];\n }\n });\n }\n (0, _utils.def)(art, 'x', {\n get: ()=>{\n return art.left + window.pageXOffset;\n }\n });\n (0, _utils.def)(art, 'y', {\n get: ()=>{\n return art.top + window.pageYOffset;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dJ7GF\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flipMix);\nvar _utils = require(\"../utils\");\nfunction flipMix(art) {\n const { template: { $player }, i18n, notice } = art;\n (0, _utils.def)(art, 'flip', {\n get () {\n return $player.dataset.flip || 'normal';\n },\n set (flip) {\n if (!flip) flip = 'normal';\n if (flip === 'normal') delete $player.dataset.flip;\n else $player.dataset.flip = flip;\n notice.show = `${i18n.get('Video Flip')}: ${i18n.get((0, _utils.capitalize)(flip))}`;\n art.emit('flip', flip);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kZI2p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniMix);\nvar _utils = require(\"../utils\");\nfunction miniMix(art) {\n const { icons, proxy, storage, template: { $player, $video } } = art;\n let isDragging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n function hideMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.removeClass)($player, 'art-mini');\n (0, _utils.setStyle)($mini, 'display', 'none');\n $player.prepend($video);\n art.emit('mini', false);\n }\n }\n function initState($play, $pause) {\n if (art.playing) {\n (0, _utils.setStyle)($play, 'display', `none`);\n (0, _utils.setStyle)($pause, 'display', `flex`);\n } else {\n (0, _utils.setStyle)($play, 'display', `flex`);\n (0, _utils.setStyle)($pause, 'display', `none`);\n }\n }\n function createMini() {\n const { $mini } = art.template;\n if ($mini) {\n (0, _utils.append)($mini, $video);\n return (0, _utils.setStyle)($mini, 'display', 'flex');\n } else {\n const $mini = (0, _utils.createElement)('div');\n (0, _utils.addClass)($mini, 'art-mini-popup');\n (0, _utils.append)(document.body, $mini);\n art.template.$mini = $mini;\n (0, _utils.append)($mini, $video);\n const $close = (0, _utils.append)($mini, `
`);\n (0, _utils.append)($close, icons.close);\n proxy($close, 'click', hideMini);\n const $state = (0, _utils.append)($mini, `
`);\n const $play = (0, _utils.append)($state, icons.play);\n const $pause = (0, _utils.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 proxy($mini, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n (0, _utils.addClass)($mini, 'art-mini-dragging');\n const x = event.pageX - lastPageX;\n const y = event.pageY - lastPageY;\n (0, _utils.setStyle)($mini, 'transform', `translate(${x}px, ${y}px)`);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) {\n isDragging = false;\n (0, _utils.removeClass)($mini, 'art-mini-dragging');\n const rect = (0, _utils.getRect)($mini);\n storage.set('left', rect.left);\n storage.set('top', rect.top);\n (0, _utils.setStyle)($mini, 'left', `${rect.left}px`);\n (0, _utils.setStyle)($mini, 'top', `${rect.top}px`);\n (0, _utils.setStyle)($mini, 'transform', null);\n }\n });\n return $mini;\n }\n }\n function initMini() {\n const { $mini } = art.template;\n const rect = (0, _utils.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 (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n }\n (0, _utils.def)(art, 'mini', {\n get () {\n return (0, _utils.hasClass)($player, 'art-mini');\n },\n set (value) {\n if (value) {\n art.state = 'mini';\n (0, _utils.addClass)($player, 'art-mini');\n const $mini = createMini();\n const top = storage.get('top');\n const left = storage.get('left');\n if (typeof top === 'number' && typeof left === 'number') {\n (0, _utils.setStyle)($mini, 'top', `${top}px`);\n (0, _utils.setStyle)($mini, 'left', `${left}px`);\n if (!(0, _utils.isInViewport)($mini)) initMini();\n } else initMini();\n art.emit('mini', true);\n } else hideMini();\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fIZNk\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>posterMix);\nvar _utils = require(\"../utils\");\nfunction posterMix(art) {\n const { template: { $poster } } = art;\n (0, _utils.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 (0, _utils.setStyle)($poster, 'backgroundImage', `url(${url})`);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"24b5p\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoHeightMix);\nvar _utils = require(\"../utils\");\nfunction autoHeightMix(art) {\n const { template: { $container, $video } } = art;\n (0, _utils.def)(art, 'autoHeight', {\n value () {\n const { clientWidth } = $container;\n const { videoHeight, videoWidth } = $video;\n const height = videoHeight * (clientWidth / videoWidth);\n (0, _utils.setStyle)($container, 'height', height + 'px');\n art.emit('autoHeight', height);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"gK6U1\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>cssVarMix);\nvar _utils = require(\"../utils\");\nfunction cssVarMix(art) {\n const { $player } = art.template;\n (0, _utils.def)(art, 'cssVar', {\n value (key, value) {\n if (value) return $player.style.setProperty(key, value);\n else return getComputedStyle($player).getPropertyValue(key);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aIG6s\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>themeMix);\nvar _utils = require(\"../utils\");\nfunction themeMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"i5sGy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>typeMix);\nvar _utils = require(\"../utils\");\nfunction typeMix(art) {\n (0, _utils.def)(art, 'type', {\n get () {\n return art.option.type;\n },\n set (type) {\n art.option.type = type;\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"juKiS\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>stateMix);\nvar _utils = require(\"../utils\");\nfunction stateMix(art) {\n const states = [\n 'mini',\n 'pip',\n 'fullscreen',\n 'fullscreenWeb'\n ];\n (0, _utils.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]) art[prop] = false;\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"arSae\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffsetMix);\nvar _utils = require(\"../utils\");\nfunction subtitleOffsetMix(art) {\n const { notice, i18n, template } = art;\n (0, _utils.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 = (0, _utils.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 = (0, _utils.clamp)(cue.originalStartTime + offset, 0, art.duration);\n cue.endTime = (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kIugI\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplayMix);\nvar _utils = require(\"../utils\");\nfunction airplayMix(art) {\n const { i18n, notice, proxy, template: { $video } } = art;\n let available = true;\n if (window.WebKitPlaybackTargetAvailabilityEvent && $video.webkitShowPlaybackTargetPicker) 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 available = false;\n (0, _utils.def)(art, 'airplay', {\n value () {\n if (available) {\n $video.webkitShowPlaybackTargetPicker();\n art.emit('airplay');\n } else notice.show = i18n.get('AirPlay Not Available');\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lDgAt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>qualityMix);\nvar _utils = require(\"../utils\");\nfunction qualityMix(art) {\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Mloy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>thumbnailsMix);\nvar _utils = require(\"../utils\");\nfunction thumbnailsMix(art) {\n const { events, option, template: { $progress, $video } } = art;\n let timer = null;\n let image = null;\n let loading = false;\n let isLoad = false;\n let isHover = false;\n function reset() {\n clearTimeout(timer);\n timer = null;\n image = null;\n loading = false;\n isLoad = false;\n }\n function showThumbnails(posWidth) {\n const $thumbnails = art.controls?.thumbnails;\n if (!$thumbnails) return;\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 (0, _utils.setStyle)($thumbnails, 'backgroundImage', `url(${image.src})`);\n (0, _utils.setStyle)($thumbnails, 'height', `${height2}px`);\n (0, _utils.setStyle)($thumbnails, 'width', `${width2}px`);\n (0, _utils.setStyle)($thumbnails, 'backgroundPosition', `-${xIndex * width2}px -${yIndex * height2}px`);\n if (posWidth <= width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', 0);\n else if (posWidth > $progress.clientWidth - width2 / 2) (0, _utils.setStyle)($thumbnails, 'left', `${$progress.clientWidth - width2}px`);\n else (0, _utils.setStyle)($thumbnails, 'left', `${posWidth - width2 / 2}px`);\n }\n events.hover($progress, ()=>{\n isHover = true;\n }, ()=>{\n isHover = false;\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 const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'hover' || isMobileDragging) {\n if (!loading) {\n loading = true;\n image = await (0, _utils.loadImg)(url, scale);\n isLoad = true;\n }\n if (!isLoad || !isHover) return;\n const width = $progress.clientWidth * percentage;\n (0, _utils.setStyle)($thumbnails, 'display', 'flex');\n if (width > 0 && width < $progress.clientWidth) showThumbnails(width);\n else if (!(0, _utils.isMobile)) (0, _utils.setStyle)($thumbnails, 'display', 'none');\n if (isMobileDragging) {\n clearTimeout(timer);\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($thumbnails, 'display', 'none');\n }, 500);\n }\n }\n });\n (0, _utils.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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"a5DcW\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>optionInit);\nvar _utils = require(\"../utils\");\nfunction optionInit(art) {\n const { option, storage, template: { $video, $poster } } = art;\n for(const key in option.moreVideoAttr)art.attr(key, option.moreVideoAttr[key]);\n if (option.muted) art.muted = option.muted;\n if (option.volume) $video.volume = (0, _utils.clamp)(option.volume, 0, 1);\n const volumeStorage = storage.get('volume');\n if (typeof volumeStorage === 'number') $video.volume = (0, _utils.clamp)(volumeStorage, 0, 1);\n if (option.poster) (0, _utils.setStyle)($poster, 'backgroundImage', `url(${option.poster})`);\n if (option.autoplay) $video.autoplay = option.autoplay;\n if (option.playsInline) {\n $video.playsInline = true;\n $video['webkit-playsinline'] = true;\n }\n if (option.theme) option.cssVar['--art-theme'] = option.theme;\n for(const key in option.cssVar)art.cssVar(key, option.cssVar[key]);\n art.url = option.url;\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"jpd3q\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>eventInit);\nvar _config = require(\"../config\");\nvar _configDefault = parcelHelpers.interopDefault(_config);\nvar _utils = require(\"../utils\");\nfunction eventInit(art) {\n const { i18n, notice, option, constructor, proxy, template: { $player, $video, $poster } } = art;\n let reconnectTime = 0;\n for(let index = 0; index < (0, _configDefault.default).events.length; index++)proxy($video, (0, _configDefault.default).events[index], (event)=>{\n art.emit(`video:${event.type}`, event);\n });\n // art.on('video:abort', () => {\n // });\n art.on('video:canplay', ()=>{\n reconnectTime = 0;\n art.loading.show = false;\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 // art.on('video:canplaythrough', () => {\n // });\n // art.on('video:durationchange', () => {\n // });\n // art.on('video:emptied', () => {\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 art.on('video:error', async (error)=>{\n if (reconnectTime < constructor.RECONNECT_TIME_MAX) {\n await (0, _utils.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 (0, _utils.addClass)($player, 'art-error');\n await (0, _utils.sleep)(constructor.RECONNECT_SLEEP_TIME);\n notice.show = i18n.get('Video Load Failed');\n }\n });\n // art.on('video:loadeddata', () => {\n // });\n art.on('video:loadedmetadata', ()=>{\n art.emit('resize');\n if (0, _utils.isMobile) {\n art.loading.show = false;\n art.controls.show = true;\n art.mask.show = true;\n }\n });\n art.on('video:loadstart', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n art.controls.show = true;\n });\n art.on('video:pause', ()=>{\n art.controls.show = true;\n art.mask.show = true;\n });\n art.on('video:play', ()=>{\n art.mask.show = false;\n (0, _utils.setStyle)($poster, 'display', 'none');\n });\n art.on('video:playing', ()=>{\n art.mask.show = false;\n });\n art.on('video:progress', ()=>{\n if (art.playing) art.loading.show = false;\n });\n // art.on('video:ratechange', () => {\n // });\n art.on('video:seeked', ()=>{\n art.loading.show = false;\n art.mask.show = true;\n });\n art.on('video:seeking', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n // art.on('video:stalled', () => {\n // });\n // art.on('video:suspend', () => {\n // });\n art.on('video:timeupdate', ()=>{\n art.mask.show = false;\n });\n // art.on('video:volumechange', () => {\n // });\n art.on('video:waiting', ()=>{\n art.loading.show = true;\n art.mask.show = false;\n });\n}\n\n},{\"../config\":\"auZaO\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3aoXC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _fullscreen = require(\"./fullscreen\");\nvar _fullscreenDefault = parcelHelpers.interopDefault(_fullscreen);\nvar _fullscreenWeb = require(\"./fullscreenWeb\");\nvar _fullscreenWebDefault = parcelHelpers.interopDefault(_fullscreenWeb);\nvar _pip = require(\"./pip\");\nvar _pipDefault = parcelHelpers.interopDefault(_pip);\nvar _playAndPause = require(\"./playAndPause\");\nvar _playAndPauseDefault = parcelHelpers.interopDefault(_playAndPause);\nvar _progress = require(\"./progress\");\nvar _progressDefault = parcelHelpers.interopDefault(_progress);\nvar _time = require(\"./time\");\nvar _timeDefault = parcelHelpers.interopDefault(_time);\nvar _volume = require(\"./volume\");\nvar _volumeDefault = parcelHelpers.interopDefault(_volume);\nvar _setting = require(\"./setting\");\nvar _settingDefault = parcelHelpers.interopDefault(_setting);\nvar _screenshot = require(\"./screenshot\");\nvar _screenshotDefault = parcelHelpers.interopDefault(_screenshot);\nvar _airplay = require(\"./airplay\");\nvar _airplayDefault = parcelHelpers.interopDefault(_airplay);\nvar _utils = require(\"../utils\");\nclass Control extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.isHover = false;\n this.name = 'control';\n this.timer = Date.now();\n const { constructor } = art;\n const { $player, $bottom } = this.art.template;\n art.on('mousemove', ()=>{\n if (!(0, _utils.isMobile)) this.show = true;\n });\n art.on('click', ()=>{\n if (0, _utils.isMobile) this.toggle();\n else this.show = true;\n });\n art.on('document:mousemove', (event)=>{\n this.isHover = (0, _utils.includeFromEvent)(event, $bottom);\n });\n art.on('video:timeupdate', ()=>{\n if (!art.setting.show && !this.isHover && !art.isInput && art.playing && this.show && Date.now() - this.timer >= constructor.CONTROL_HIDE_TIME) this.show = false;\n });\n art.on('control', (state)=>{\n if (state) {\n (0, _utils.removeClass)($player, 'art-hide-cursor');\n (0, _utils.addClass)($player, 'art-hover');\n this.timer = Date.now();\n } else {\n (0, _utils.addClass)($player, 'art-hide-cursor');\n (0, _utils.removeClass)($player, 'art-hover');\n }\n });\n this.init();\n }\n init() {\n const { option } = this.art;\n if (!option.isLive) this.add((0, _progressDefault.default)({\n name: 'progress',\n position: 'top',\n index: 10\n }));\n this.add({\n name: 'thumbnails',\n position: 'top',\n index: 20\n });\n this.add((0, _playAndPauseDefault.default)({\n name: 'playAndPause',\n position: 'left',\n index: 10\n }));\n this.add((0, _volumeDefault.default)({\n name: 'volume',\n position: 'left',\n index: 20\n }));\n if (!option.isLive) this.add((0, _timeDefault.default)({\n name: 'time',\n position: 'left',\n index: 30\n }));\n if (option.quality.length) (0, _utils.sleep)().then(()=>{\n this.art.quality = option.quality;\n });\n if (option.screenshot && !(0, _utils.isMobile)) this.add((0, _screenshotDefault.default)({\n name: 'screenshot',\n position: 'right',\n index: 20\n }));\n if (option.setting) this.add((0, _settingDefault.default)({\n name: 'setting',\n position: 'right',\n index: 30\n }));\n if (option.pip) this.add((0, _pipDefault.default)({\n name: 'pip',\n position: 'right',\n index: 40\n }));\n if (option.airplay && window.WebKitPlaybackTargetAvailabilityEvent) this.add((0, _airplayDefault.default)({\n name: 'airplay',\n position: 'right',\n index: 50\n }));\n if (option.fullscreenWeb) this.add((0, _fullscreenWebDefault.default)({\n name: 'fullscreenWeb',\n position: 'right',\n index: 60\n }));\n if (option.fullscreen) this.add((0, _fullscreenDefault.default)({\n name: 'fullscreen',\n position: 'right',\n index: 70\n }));\n for(let index = 0; index < option.controls.length; index++)this.add(option.controls[index]);\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\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 (0, _utils.errorHandle)(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n super.add(option);\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) (0, _utils.inverseClass)(item.$control_item, 'art-current');\n }\n }\n selector(option, $ref, events) {\n const { proxy } = this.art.events;\n (0, _utils.addClass)($ref, 'art-control-selector');\n const $value = (0, _utils.createElement)('div');\n (0, _utils.addClass)($value, 'art-selector-value');\n (0, _utils.append)($value, option.html);\n $ref.innerText = '';\n (0, _utils.append)($ref, $value);\n const $list = (0, _utils.createElement)('div');\n (0, _utils.addClass)($list, 'art-selector-list');\n (0, _utils.append)($ref, $list);\n for(let index = 0; index < option.selector.length; index++){\n const item = option.selector[index];\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-selector-item');\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n $item.dataset.index = index;\n $item.dataset.value = item.value;\n $item.innerHTML = item.html;\n (0, _utils.append)($list, $item);\n (0, _utils.def)(item, '$control_option', {\n get: ()=>option.selector\n });\n (0, _utils.def)(item, '$control_item', {\n get: ()=>$item\n });\n (0, _utils.def)(item, '$control_value', {\n get: ()=>$value\n });\n }\n const event = proxy($list, 'click', async (event)=>{\n const path = event.composedPath() || [];\n const item = option.selector.find((item)=>item.$control_item === path.find(($item)=>item.$control_item === $item));\n this.check(item);\n if (option.onSelect) $value.innerHTML = await option.onSelect.call(this.art, item, item.$control_item, event);\n });\n events.push(event);\n }\n}\nexports.default = Control;\n\n},{\"../utils/component\":\"euCTd\",\"./fullscreen\":\"9LKex\",\"./fullscreenWeb\":\"htT34\",\"./pip\":\"7zSba\",\"./playAndPause\":\"kGz8j\",\"./progress\":\"7zX2b\",\"./time\":\"eUF3T\",\"./volume\":\"5Jp6A\",\"./setting\":\"aPd5g\",\"./screenshot\":\"cEkSl\",\"./airplay\":\"iUshw\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"euCTd\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _dom = require(\"./dom\");\nvar _error = require(\"./error\");\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"../scheme\");\nclass 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 get show() {\n return (0, _dom.hasClass)(this.art.template.$player, `art-${this.name}-show`);\n }\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) (0, _dom.addClass)($player, className);\n else (0, _dom.removeClass)($player, className);\n this.art.emit(this.name, value);\n }\n toggle() {\n this.show = !this.show;\n }\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n option.html = option.html || '';\n (0, _optionValidatorDefault.default)(option, (0, _scheme.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 (0, _error.errorHandle)(!item, `Can't add an existing [${name}] to the [${this.name}]`);\n this.id += 1;\n const $ref = (0, _dom.createElement)('div');\n (0, _dom.addClass)($ref, `art-${this.name}`);\n (0, _dom.addClass)($ref, `art-${this.name}-${name}`);\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) nextChild.insertAdjacentElement('beforebegin', $ref);\n else (0, _dom.append)(this.$parent, $ref);\n if (option.html) (0, _dom.append)($ref, option.html);\n if (option.style) (0, _dom.setStyles)($ref, option.style);\n if (option.tooltip) (0, _dom.tooltip)($ref, option.tooltip);\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 if (option.selector && [\n 'left',\n 'right'\n ].includes(option.position)) this.selector(option, $ref, events);\n this[name] = $ref;\n this.cache.set(name, {\n $ref,\n events,\n option\n });\n if (option.mounted) option.mounted.call(this.art, $ref);\n return $ref;\n }\n remove(name) {\n const item = this.cache.get(name);\n (0, _error.errorHandle)(item, `Can't find [${name}] from the [${this.name}]`);\n if (item.option.beforeUnmount) item.option.beforeUnmount.call(this.art, item.$ref);\n for(let index = 0; index < item.events.length; index++)this.art.events.remove(item.events[index]);\n this.cache.delete(name);\n delete this[name];\n (0, _dom.remove)(item.$ref);\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}\nexports.default = Component;\n\n},{\"./dom\":\"6a4fx\",\"./error\":\"anKPB\",\"option-validator\":\"glVMO\",\"../scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"9LKex\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreen);\nvar _utils = require(\"../utils\");\nfunction fullscreen(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenOn = (0, _utils.append)($control, icons.fullscreenOn);\n const $fullscreenOff = (0, _utils.append)($control, icons.fullscreenOff);\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreen = !art.fullscreen;\n });\n art.on('fullscreen', (state)=>{\n if (state) {\n (0, _utils.tooltip)($control, i18n.get('Exit Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Fullscreen'));\n (0, _utils.setStyle)($fullscreenOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"htT34\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fullscreenWeb);\nvar _utils = require(\"../utils\");\nfunction fullscreenWeb(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Web Fullscreen'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $fullscreenWebOn = (0, _utils.append)($control, icons.fullscreenWebOn);\n const $fullscreenWebOff = (0, _utils.append)($control, icons.fullscreenWebOff);\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n proxy($control, 'click', ()=>{\n art.fullscreenWeb = !art.fullscreenWeb;\n });\n art.on('fullscreenWeb', (value)=>{\n if (value) {\n (0, _utils.tooltip)($control, i18n.get('Exit Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'none');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'inline-flex');\n } else {\n (0, _utils.tooltip)($control, i18n.get('Web Fullscreen'));\n (0, _utils.setStyle)($fullscreenWebOn, 'display', 'inline-flex');\n (0, _utils.setStyle)($fullscreenWebOff, 'display', 'none');\n }\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zSba\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>pip);\nvar _utils = require(\"../utils\");\nfunction pip(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('PIP Mode'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.pip);\n proxy($control, 'click', ()=>{\n art.pip = !art.pip;\n });\n art.on('pip', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Exit PIP Mode' : 'PIP Mode'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kGz8j\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playAndPause);\nvar _utils = require(\"../utils\");\nfunction playAndPause(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n const $play = (0, _utils.append)($control, icons.play);\n const $pause = (0, _utils.append)($control, icons.pause);\n (0, _utils.tooltip)($play, i18n.get('Play'));\n (0, _utils.tooltip)($pause, i18n.get('Pause'));\n proxy($play, 'click', ()=>{\n art.play();\n });\n proxy($pause, 'click', ()=>{\n art.pause();\n });\n function showPlay() {\n (0, _utils.setStyle)($play, 'display', 'flex');\n (0, _utils.setStyle)($pause, 'display', 'none');\n }\n function showPause() {\n (0, _utils.setStyle)($play, 'display', 'none');\n (0, _utils.setStyle)($pause, 'display', 'flex');\n }\n if (art.playing) showPause();\n else showPlay();\n art.on('video:playing', ()=>{\n showPause();\n });\n art.on('video:pause', ()=>{\n showPlay();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"7zX2b\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"getPosFromEvent\", ()=>getPosFromEvent);\nparcelHelpers.export(exports, \"setCurrentTime\", ()=>setCurrentTime);\nparcelHelpers.export(exports, \"default\", ()=>progress);\nvar _utils = require(\"../utils\");\nfunction getPosFromEvent(art, event) {\n const { $progress } = art.template;\n const { left } = (0, _utils.getRect)($progress);\n const eventLeft = (0, _utils.isMobile) ? event.touches[0].clientX : event.clientX;\n const width = (0, _utils.clamp)(eventLeft - left, 0, $progress.clientWidth);\n const second = width / $progress.clientWidth * art.duration;\n const time = (0, _utils.secondToTime)(second);\n const percentage = (0, _utils.clamp)(width / $progress.clientWidth, 0, 1);\n return {\n second,\n time,\n width,\n percentage\n };\n}\nfunction 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}\nfunction progress(options) {\n return (art)=>{\n const { icons, option, proxy } = art;\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 const $hover = (0, _utils.query)('.art-progress-hover', $control);\n const $loaded = (0, _utils.query)('.art-progress-loaded', $control);\n const $played = (0, _utils.query)('.art-progress-played', $control);\n const $highlight = (0, _utils.query)('.art-progress-highlight', $control);\n const $indicator = (0, _utils.query)('.art-progress-indicator', $control);\n const $tip = (0, _utils.query)('.art-progress-tip', $control);\n if (icons.indicator) (0, _utils.append)($indicator, icons.indicator);\n else (0, _utils.setStyle)($indicator, 'backgroundColor', 'var(--art-theme)');\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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) (0, _utils.setStyle)($tip, 'left', 0);\n else if (width > $control.clientWidth - tipWidth / 2) (0, _utils.setStyle)($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n else (0, _utils.setStyle)($tip, 'left', `${width - tipWidth / 2}px`);\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 = (0, _utils.clamp)(item.time, 0, art.duration) / art.duration * 100;\n const html = ``;\n (0, _utils.append)($highlight, html);\n }\n }\n function setBar(type, percentage, event) {\n const isMobileDragging = type === 'played' && event && (0, _utils.isMobile);\n if (type === 'loaded') (0, _utils.setStyle)($loaded, 'width', `${percentage * 100}%`);\n if (type === 'hover') (0, _utils.setStyle)($hover, 'width', `${percentage * 100}%`);\n if (type === 'played') {\n (0, _utils.setStyle)($played, 'width', `${percentage * 100}%`);\n (0, _utils.setStyle)($indicator, 'left', `${percentage * 100}%`);\n }\n if (isMobileDragging) {\n (0, _utils.setStyle)($tip, 'display', 'flex');\n const width = $control.clientWidth * percentage;\n const time = (0, _utils.secondToTime)(percentage * art.duration);\n showTime(event, {\n width,\n time\n });\n clearTimeout(tipTimer);\n tipTimer = setTimeout(()=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n }, 500);\n }\n }\n art.on('setBar', setBar);\n art.on('video:loadedmetadata', updateHighlight);\n if (art.constructor.USE_RAF) 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 art.on('video:progress', ()=>{\n art.emit('setBar', 'loaded', art.loaded);\n });\n art.on('video:ended', ()=>{\n art.emit('setBar', 'played', 1);\n });\n }\n art.emit('setBar', 'loaded', art.loaded || 0);\n if (!(0, _utils.isMobile)) {\n proxy($control, 'click', (event)=>{\n if (event.target !== $indicator) setCurrentTime(art, event);\n });\n proxy($control, 'mousemove', (event)=>{\n const { percentage } = getPosFromEvent(art, event);\n art.emit('setBar', 'hover', percentage, event);\n (0, _utils.setStyle)($tip, 'display', 'flex');\n if ((0, _utils.includeFromEvent)(event, $highlight)) showHighlight(event);\n else showTime(event);\n });\n proxy($control, 'mouseleave', (event)=>{\n (0, _utils.setStyle)($tip, 'display', 'none');\n art.emit('setBar', 'hover', 0, event);\n });\n proxy($control, 'mousedown', (event)=>{\n isDragging = event.button === 0;\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 art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"eUF3T\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>time);\nvar _utils = require(\"../utils\");\nfunction time(option) {\n return (art)=>({\n ...option,\n style: (0, _utils.isMobile) ? {\n fontSize: '12px',\n padding: '0 5px'\n } : {\n cursor: 'auto',\n padding: '0 10px'\n },\n mounted: ($control)=>{\n function getTime() {\n const newTime = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\n if (newTime !== $control.innerText) $control.innerText = newTime;\n }\n getTime();\n const events = [\n 'video:loadedmetadata',\n 'video:timeupdate',\n 'video:progress'\n ];\n for(let index = 0; index < events.length; index++)art.on(events[index], getTime);\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5Jp6A\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>volume);\nvar _utils = require(\"../utils\");\nfunction volume(option) {\n return (art)=>({\n ...option,\n mounted: ($control)=>{\n const { proxy, icons } = art;\n const $volume = (0, _utils.append)($control, icons.volume);\n const $close = (0, _utils.append)($control, icons.volumeClose);\n const $panel = (0, _utils.append)($control, '
');\n const $inner = (0, _utils.append)($panel, '
');\n const $value = (0, _utils.append)($inner, `
`);\n const $slider = (0, _utils.append)($inner, `
`);\n const $handle = (0, _utils.append)($slider, `
`);\n const $loaded = (0, _utils.append)($handle, `
`);\n const $indicator = (0, _utils.append)($slider, `
`);\n function getVolumeFromEvent(event) {\n const { top, height } = (0, _utils.getRect)($slider);\n return 1 - (event.clientY - top) / height;\n }\n function update() {\n if (art.muted || art.volume === 0) {\n (0, _utils.setStyle)($volume, 'display', 'none');\n (0, _utils.setStyle)($close, 'display', 'flex');\n (0, _utils.setStyle)($indicator, 'top', '100%');\n (0, _utils.setStyle)($loaded, 'top', '100%');\n $value.innerText = 0;\n } else {\n const percentage = art.volume * 100;\n (0, _utils.setStyle)($volume, 'display', 'flex');\n (0, _utils.setStyle)($close, 'display', 'none');\n (0, _utils.setStyle)($indicator, 'top', `${100 - percentage}%`);\n (0, _utils.setStyle)($loaded, 'top', `${100 - percentage}%`);\n $value.innerText = Math.floor(percentage);\n }\n }\n update();\n art.on('video:volumechange', update);\n proxy($volume, 'click', ()=>{\n art.muted = true;\n });\n proxy($close, 'click', ()=>{\n art.muted = false;\n });\n if (0, _utils.isMobile) (0, _utils.setStyle)($panel, 'display', 'none');\n else {\n let isDragging = false;\n proxy($slider, 'mousedown', (event)=>{\n isDragging = event.button === 0;\n art.volume = getVolumeFromEvent(event);\n });\n art.on('document:mousemove', (event)=>{\n if (isDragging) {\n art.muted = false;\n art.volume = getVolumeFromEvent(event);\n }\n });\n art.on('document:mouseup', ()=>{\n if (isDragging) isDragging = false;\n });\n }\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aPd5g\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>setting);\nvar _utils = require(\"../utils\");\nfunction setting(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Show Setting'),\n mounted: ($control)=>{\n const { proxy, icons, i18n } = art;\n (0, _utils.append)($control, icons.setting);\n proxy($control, 'click', ()=>{\n art.setting.toggle();\n art.setting.resize();\n });\n art.on('setting', (value)=>{\n (0, _utils.tooltip)($control, i18n.get(value ? 'Hide Setting' : 'Show Setting'));\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cEkSl\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>screenshot);\nvar _utils = require(\"../utils\");\nfunction screenshot(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.screenshot);\n proxy($control, 'click', ()=>{\n art.screenshot();\n });\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iUshw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>airplay);\nvar _utils = require(\"../utils\");\nfunction airplay(option) {\n return (art)=>({\n ...option,\n tooltip: art.i18n.get('AirPlay'),\n mounted: ($control)=>{\n const { proxy, icons } = art;\n (0, _utils.append)($control, icons.airplay);\n proxy($control, 'click', ()=>art.airplay());\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5YYHx\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _info = require(\"./info\");\nvar _infoDefault = parcelHelpers.interopDefault(_info);\nvar _version = require(\"./version\");\nvar _versionDefault = parcelHelpers.interopDefault(_version);\nvar _close = require(\"./close\");\nvar _closeDefault = parcelHelpers.interopDefault(_close);\nclass Contextmenu extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'contextmenu';\n this.$parent = art.template.$contextmenu;\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { option, proxy, template: { $player, $contextmenu } } = this.art;\n if (option.playbackRate) this.add((0, _playbackRateDefault.default)({\n name: 'playbackRate',\n index: 10\n }));\n if (option.aspectRatio) this.add((0, _aspectRatioDefault.default)({\n name: 'aspectRatio',\n index: 20\n }));\n if (option.flip) this.add((0, _flipDefault.default)({\n name: 'flip',\n index: 30\n }));\n this.add((0, _infoDefault.default)({\n name: 'info',\n index: 40\n }));\n this.add((0, _versionDefault.default)({\n name: 'version',\n index: 50\n }));\n this.add((0, _closeDefault.default)({\n name: 'close',\n index: 60\n }));\n for(let index = 0; index < option.contextmenu.length; index++)this.add(option.contextmenu[index]);\n proxy($player, 'contextmenu', (event)=>{\n if (!this.art.constructor.CONTEXTMENU) return;\n event.preventDefault();\n this.show = true;\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = (0, _utils.getRect)($player);\n const { height: mHeight, width: mWidth } = (0, _utils.getRect)($contextmenu);\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n if (mouseX + mWidth > cLeft + cWidth) menuLeft = cWidth - mWidth;\n if (mouseY + mHeight > cTop + cHeight) menuTop = cHeight - mHeight;\n (0, _utils.setStyles)($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`\n });\n });\n proxy($player, 'click', (event)=>{\n if (!(0, _utils.includeFromEvent)(event, $contextmenu)) this.show = false;\n });\n this.art.on('blur', ()=>{\n this.show = false;\n });\n }\n}\nexports.default = Contextmenu;\n\n},{\"../utils\":\"2zmtQ\",\"../utils/component\":\"euCTd\",\"./playbackRate\":\"lWYo9\",\"./aspectRatio\":\"5d6ZO\",\"./flip\":\"1GWlZ\",\"./info\":\"c5pls\",\"./version\":\"lD1aU\",\"./close\":\"4jD3d\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lWYo9\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nvar _utils = require(\"../utils\");\nfunction playbackRate(option) {\n return (art)=>{\n const { i18n, constructor: { PLAYBACK_RATE } } = art;\n const html = PLAYBACK_RATE.map((item)=>`${item === 1 ? i18n.get('Normal') : item.toFixed(1)}`).join('');\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 = (0, _utils.query)('[data-value=\"1\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('video:ratechange', ()=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>Number(item.dataset.value) === art.playbackRate);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5d6ZO\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nvar _utils = require(\"../utils\");\nfunction aspectRatio(option) {\n return (art)=>{\n const { i18n, constructor: { ASPECT_RATIO } } = art;\n const html = ASPECT_RATIO.map((item)=>`${item === 'default' ? i18n.get('Default') : item}`).join('');\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 = (0, _utils.query)('[data-value=\"default\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('aspectRatio', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1GWlZ\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(option) {\n return (art)=>{\n const { i18n, constructor: { FLIP } } = art;\n const html = FLIP.map((item)=>`${i18n.get((0, _utils.capitalize)(item))}`).join('');\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 = (0, _utils.query)('[data-value=\"normal\"]', $panel);\n if ($default) (0, _utils.inverseClass)($default, 'art-current');\n art.on('flip', (value)=>{\n const $current = (0, _utils.queryAll)('span', $panel).find((item)=>item.dataset.value === value);\n if ($current) (0, _utils.inverseClass)($current, 'art-current');\n });\n }\n };\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"c5pls\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>info);\nfunction 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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"lD1aU\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>function(option) {\n return {\n ...option,\n html: `ArtPlayer ${0, _packageJson.version}`\n };\n });\nvar _packageJson = require(\"../../package.json\");\n\n},{\"../../package.json\":\"3QATz\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4jD3d\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>close);\nfunction close(option) {\n return (art)=>({\n ...option,\n html: art.i18n.get('Close'),\n click: (contextmenu)=>{\n contextmenu.show = false;\n }\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"j6kB4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Info extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'info';\n if (!(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor, template: { $infoPanel, $infoClose, $video } } = this.art;\n proxy($infoClose, 'click', ()=>{\n this.show = false;\n });\n let timer = null;\n const $types = (0, _utils.queryAll)('[data-video]', $infoPanel) || [];\n this.art.on('destroy', ()=>clearTimeout(timer));\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) item.innerText = innerText;\n }\n timer = setTimeout(loop, constructor.INFO_LOOP_TIME);\n }\n loop();\n }\n}\nexports.default = Info;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ldqPL\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _optionValidator = require(\"option-validator\");\nvar _optionValidatorDefault = parcelHelpers.interopDefault(_optionValidator);\nvar _scheme = require(\"./scheme\");\nvar _schemeDefault = parcelHelpers.interopDefault(_scheme);\nclass Subtitle extends (0, _componentDefault.default) {\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 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 get url() {\n return this.art.template.$track.src;\n }\n set url(url) {\n this.switch(url);\n }\n get textTrack() {\n return this.art.template.$video?.textTracks?.[0];\n }\n get activeCues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.activeCues);\n }\n get cues() {\n if (!this.textTrack) return [];\n return Array.from(this.textTrack.cues);\n }\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') return (0, _utils.setStyles)($subtitle, key);\n return (0, _utils.setStyle)($subtitle, key, value);\n }\n update() {\n const { option: { subtitle }, template: { $subtitle } } = this.art;\n $subtitle.innerHTML = '';\n if (!this.activeCues.length) return;\n this.art.emit('subtitleBeforeUpdate', this.activeCues);\n $subtitle.innerHTML = this.activeCues.map((cue, index)=>cue.text.split(/\\r?\\n/).filter((line)=>line.trim()).map((line)=>`
\n ${subtitle.escape ? (0, _utils.escape)(line) : line}\n
`).join('')).join('');\n this.art.emit('subtitleAfterUpdate', this.activeCues);\n }\n async switch(url, newOption = {}) {\n const { i18n, notice, option } = this.art;\n const subtitleOption = {\n ...option.subtitle,\n ...newOption,\n url\n };\n const subUrl = await this.init(subtitleOption);\n if (newOption.name) notice.show = `${i18n.get('Switch Subtitle')}: ${newOption.name}`;\n return subUrl;\n }\n createTrack(kind, url) {\n const { template, proxy, option } = this.art;\n const { $video, $track } = template;\n const $newTrack = (0, _utils.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 this.art.events.remove(this.destroyEvent);\n $track.onload = null;\n (0, _utils.remove)($track);\n (0, _utils.append)($video, $newTrack);\n template.$track = $newTrack;\n this.destroyEvent = proxy(this.textTrack, 'cuechange', ()=>this.update());\n }\n async init(subtitleOption) {\n const { notice, template: { $subtitle } } = this.art;\n if (!this.textTrack) return null;\n (0, _optionValidatorDefault.default)(subtitleOption, (0, _schemeDefault.default).subtitle);\n if (!subtitleOption.url) return;\n this.option = subtitleOption;\n this.style(subtitleOption.style);\n return fetch(subtitleOption.url).then((response)=>response.arrayBuffer()).then((buffer)=>{\n const decoder = new TextDecoder(subtitleOption.encoding);\n const text = decoder.decode(buffer);\n switch(subtitleOption.type || (0, _utils.getExt)(subtitleOption.url)){\n case 'srt':\n {\n const vtt = (0, _utils.srtToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'ass':\n {\n const vtt = (0, _utils.assToVtt)(text);\n const vttNew = subtitleOption.onVttLoad(vtt);\n return (0, _utils.vttToBlob)(vttNew);\n }\n case 'vtt':\n {\n const vttNew = subtitleOption.onVttLoad(text);\n return (0, _utils.vttToBlob)(vttNew);\n }\n default:\n return subtitleOption.url;\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 }).catch((err)=>{\n $subtitle.innerHTML = '';\n notice.show = err;\n throw err;\n });\n }\n}\nexports.default = Subtitle;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"option-validator\":\"glVMO\",\"./scheme\":\"lGoF1\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5jGH8\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _clickInit = require(\"./clickInit\");\nvar _clickInitDefault = parcelHelpers.interopDefault(_clickInit);\nvar _hoverInit = require(\"./hoverInit\");\nvar _hoverInitDefault = parcelHelpers.interopDefault(_hoverInit);\nvar _moveInit = require(\"./moveInit\");\nvar _moveInitDefault = parcelHelpers.interopDefault(_moveInit);\nvar _resizeInit = require(\"./resizeInit\");\nvar _resizeInitDefault = parcelHelpers.interopDefault(_resizeInit);\nvar _gestureInit = require(\"./gestureInit\");\nvar _gestureInitDefault = parcelHelpers.interopDefault(_gestureInit);\nvar _viewInit = require(\"./viewInit\");\nvar _viewInitDefault = parcelHelpers.interopDefault(_viewInit);\nvar _documentInit = require(\"./documentInit\");\nvar _documentInitDefault = parcelHelpers.interopDefault(_documentInit);\nvar _updateInit = require(\"./updateInit\");\nvar _updateInitDefault = parcelHelpers.interopDefault(_updateInit);\nvar _restoreInit = require(\"./restoreInit\");\nvar _restoreInitDefault = parcelHelpers.interopDefault(_restoreInit);\nclass Events {\n constructor(art){\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n (0, _clickInitDefault.default)(art, this);\n (0, _hoverInitDefault.default)(art, this);\n (0, _moveInitDefault.default)(art, this);\n (0, _resizeInitDefault.default)(art, this);\n (0, _gestureInitDefault.default)(art, this);\n (0, _viewInitDefault.default)(art, this);\n (0, _documentInitDefault.default)(art, this);\n (0, _updateInitDefault.default)(art, this);\n (0, _restoreInitDefault.default)(art, this);\n }\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) return name.map((item)=>this.proxy(target, item, callback, option));\n target.addEventListener(name, callback, option);\n const destroy = ()=>target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) this.proxy(target, 'mouseenter', mouseenter);\n if (mouseleave) this.proxy(target, 'mouseleave', mouseleave);\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 destroy() {\n for(let index = 0; index < this.destroyEvents.length; index++)this.destroyEvents[index]();\n }\n}\nexports.default = Events;\n\n},{\"./clickInit\":\"5AH6F\",\"./hoverInit\":\"egLHg\",\"./moveInit\":\"iGcl4\",\"./resizeInit\":\"1DNHs\",\"./gestureInit\":\"efKpC\",\"./viewInit\":\"fNuBy\",\"./documentInit\":\"kHtUy\",\"./updateInit\":\"8cq8y\",\"./restoreInit\":\"3XeLA\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"5AH6F\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>clickInit);\nvar _utils = require(\"../utils\");\nfunction clickInit(art, events) {\n const { constructor, template: { $player, $video } } = art;\n events.proxy(document, [\n 'click',\n 'contextmenu'\n ], (event)=>{\n if ((0, _utils.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 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 const clicks = clickTimes.filter((t)=>now - t <= DBCLICK_TIME);\n switch(clicks.length){\n case 1:\n art.emit('click', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_CLICK_PLAY) art.toggle();\n } else art.toggle();\n clickTimes = clicks;\n break;\n case 2:\n art.emit('dblclick', event);\n if (0, _utils.isMobile) {\n if (!art.isLock && MOBILE_DBCLICK_PLAY) art.toggle();\n } else if (DBCLICK_FULLSCREEN) art.fullscreen = !art.fullscreen;\n clickTimes = [];\n break;\n default:\n clickTimes = [];\n }\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"egLHg\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>hoverInit);\nvar _utils = require(\"../utils\");\nfunction hoverInit(art, events) {\n const { $player } = art.template;\n events.hover($player, (event)=>{\n (0, _utils.addClass)($player, 'art-hover');\n art.emit('hover', true, event);\n }, (event)=>{\n (0, _utils.removeClass)($player, 'art-hover');\n art.emit('hover', false, event);\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iGcl4\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>moveInit);\nfunction moveInit(art, events) {\n const { $player } = art.template;\n events.proxy($player, 'mousemove', (event)=>{\n art.emit('mousemove', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"1DNHs\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>resizeInit);\nvar _utils = require(\"../utils\");\nfunction resizeInit(art, events) {\n const { option, constructor } = art;\n art.on('resize', ()=>{\n const { aspectRatio, notice } = art;\n if (art.state === 'standard' && option.autoSize) art.autoSize();\n art.aspectRatio = aspectRatio;\n notice.show = '';\n });\n const resizeFn = (0, _utils.debounce)(()=>art.emit('resize'), constructor.RESIZE_TIME);\n events.proxy(window, [\n 'orientationchange',\n 'resize'\n ], ()=>resizeFn());\n if (screen && screen.orientation && screen.orientation.onchange) events.proxy(screen.orientation, 'change', ()=>resizeFn());\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"efKpC\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>gestureInit);\nvar _utils = require(\"../utils\");\nvar _progress = require(\"../control/progress\");\nfunction GetSlideAngle(dx, dy) {\n return Math.atan2(dy, dx) * 180 / Math.PI;\n}\nfunction GetSlideDirection(startX, startY, endX, endY) {\n var dy = startY - endY;\n var dx = endX - startX;\n var result = 0;\n if (Math.abs(dx) < 2 && Math.abs(dy) < 2) return result;\n var angle = GetSlideAngle(dx, dy);\n if (angle >= -45 && angle < 45) result = 4;\n else if (angle >= 45 && angle < 135) result = 1;\n else if (angle >= -135 && angle < -45) result = 2;\n else if (angle >= 135 && angle <= 180 || angle >= -180 && angle < -135) result = 3;\n return result;\n}\nfunction gestureInit(art, events) {\n if ((0, _utils.isMobile) && !art.option.isLive) {\n const { $video, $progress } = art.template;\n let touchTarget = null;\n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let startTime = 0;\n const onTouchStart = (event)=>{\n if (event.touches.length === 1 && !art.isLock) {\n if (touchTarget === $progress) (0, _progress.setCurrentTime)(art, event);\n isDragging = true;\n const { pageX, pageY } = event.touches[0];\n startX = pageX;\n startY = pageY;\n startTime = art.currentTime;\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 = [\n 3,\n 4\n ].includes(direction);\n const isVertical = [\n 1,\n 2\n ].includes(direction);\n const isLegal = isHorizontal && !art.isRotate || isVertical && art.isRotate;\n if (isLegal) {\n const ratioX = (0, _utils.clamp)((pageX - startX) / art.width, -1, 1);\n const ratioY = (0, _utils.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 = (0, _utils.clamp)(startTime + art.duration * ratio * TOUCH_MOVE_RATIO, 0, art.duration);\n art.seek = currentTime;\n art.emit('setBar', 'played', (0, _utils.clamp)(currentTime / art.duration, 0, 1), event);\n art.notice.show = `${(0, _utils.secondToTime)(currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;\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 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 events.proxy($progress, 'touchstart', (event)=>{\n touchTarget = $progress;\n onTouchStart(event);\n });\n events.proxy($progress, 'touchmove', onTouchMove);\n events.proxy(document, 'touchend', onTouchEnd);\n }\n}\n\n},{\"../utils\":\"2zmtQ\",\"../control/progress\":\"7zX2b\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"fNuBy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>viewInit);\nvar _utils = require(\"../utils\");\nfunction viewInit(art, events) {\n const { option, constructor, template: { $container } } = art;\n const scrollFn = (0, _utils.throttle)(()=>{\n art.emit('view', (0, _utils.isInViewport)($container, constructor.SCROLL_GAP));\n }, constructor.SCROLL_TIME);\n events.proxy(window, 'scroll', ()=>scrollFn());\n art.on('view', (state)=>{\n if (option.autoMini) art.mini = !state;\n });\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kHtUy\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>documentInit);\nfunction documentInit(art, events) {\n events.proxy(document, 'mousemove', (event)=>{\n art.emit('document:mousemove', event);\n });\n events.proxy(document, 'mouseup', (event)=>{\n art.emit('document:mouseup', event);\n });\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8cq8y\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>updateInit);\nfunction updateInit(art) {\n if (art.constructor.USE_RAF) {\n let timer = null;\n (function update() {\n if (art.playing) art.emit('raf');\n if (!art.isDestroy) timer = requestAnimationFrame(update);\n })();\n art.on('destroy', ()=>{\n cancelAnimationFrame(timer);\n });\n }\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3XeLA\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>restoreInit);\nfunction restoreInit(art, events) {\n//\n}\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8a1Mr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Hotkey {\n constructor(art){\n this.art = art;\n this.keys = {};\n if (art.option.hotkey && !(0, _utils.isMobile)) this.init();\n }\n init() {\n const { proxy, constructor } = this.art;\n this.add('Escape', ()=>{\n if (this.art.fullscreenWeb) this.art.fullscreenWeb = false;\n });\n this.add('Space', ()=>{\n this.art.toggle();\n });\n this.add('ArrowLeft', ()=>{\n this.art.backward = constructor.SEEK_STEP;\n });\n this.add('ArrowUp', ()=>{\n this.art.volume += constructor.VOLUME_STEP;\n });\n this.add('ArrowRight', ()=>{\n this.art.forward = constructor.SEEK_STEP;\n });\n this.add('ArrowDown', ()=>{\n this.art.volume -= constructor.VOLUME_STEP;\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 (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true' && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) {\n const events = this.keys[event.code];\n if (events) {\n event.preventDefault();\n for(let index = 0; index < events.length; index++)events[index].call(this.art, event);\n this.art.emit('hotkey', event);\n }\n }\n }\n this.art.emit('keydown', event);\n });\n }\n add(key, event) {\n if (this.keys[key]) this.keys[key].push(event);\n else this.keys[key] = [\n event\n ];\n return this;\n }\n remove(key, event) {\n if (this.keys[key]) {\n const index = this.keys[key].indexOf(event);\n if (index !== -1) this.keys[key].splice(index, 1);\n }\n return this;\n }\n}\nexports.default = Hotkey;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3WCuK\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Layer extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, template: { $layer } } = art;\n this.name = 'layer';\n this.$parent = $layer;\n for(let index = 0; index < option.layers.length; index++)this.add(option.layers[index]);\n }\n}\nexports.default = Layer;\n\n},{\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"inwRV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Loading extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'loading';\n (0, _utils.append)(art.template.$loading, art.icons.loading);\n }\n}\nexports.default = Loading;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"iAojr\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nclass Notice {\n constructor(art){\n this.art = art;\n this.timer = null;\n }\n set show(msg) {\n const { constructor, template: { $player, $noticeInner } } = this.art;\n if (msg) {\n $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg;\n (0, _utils.addClass)($player, 'art-notice-show');\n clearTimeout(this.timer);\n this.timer = setTimeout(()=>{\n $noticeInner.innerText = '';\n (0, _utils.removeClass)($player, 'art-notice-show');\n }, constructor.NOTICE_TIME);\n } else (0, _utils.removeClass)($player, 'art-notice-show');\n }\n}\nexports.default = Notice;\n\n},{\"./utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"4ZuYu\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"./utils\");\nvar _component = require(\"./utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nclass Mask extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n this.name = 'mask';\n const { template, icons, events } = art;\n const $state = (0, _utils.append)(template.$state, icons.state);\n const $error = (0, _utils.append)(template.$state, icons.error);\n (0, _utils.setStyle)($error, 'display', 'none');\n art.on('destroy', ()=>{\n (0, _utils.setStyle)($state, 'display', 'none');\n (0, _utils.setStyle)($error, 'display', null);\n });\n events.proxy(template.$state, 'click', ()=>art.play());\n }\n}\nexports.default = Mask;\n\n},{\"./utils\":\"2zmtQ\",\"./utils/component\":\"euCTd\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aEpTt\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _loadingSvg = require(\"bundle-text:./loading.svg\");\nvar _loadingSvgDefault = parcelHelpers.interopDefault(_loadingSvg);\nvar _stateSvg = require(\"bundle-text:./state.svg\");\nvar _stateSvgDefault = parcelHelpers.interopDefault(_stateSvg);\nvar _checkSvg = require(\"bundle-text:./check.svg\");\nvar _checkSvgDefault = parcelHelpers.interopDefault(_checkSvg);\nvar _playSvg = require(\"bundle-text:./play.svg\");\nvar _playSvgDefault = parcelHelpers.interopDefault(_playSvg);\nvar _pauseSvg = require(\"bundle-text:./pause.svg\");\nvar _pauseSvgDefault = parcelHelpers.interopDefault(_pauseSvg);\nvar _volumeSvg = require(\"bundle-text:./volume.svg\");\nvar _volumeSvgDefault = parcelHelpers.interopDefault(_volumeSvg);\nvar _volumeCloseSvg = require(\"bundle-text:./volume-close.svg\");\nvar _volumeCloseSvgDefault = parcelHelpers.interopDefault(_volumeCloseSvg);\nvar _screenshotSvg = require(\"bundle-text:./screenshot.svg\");\nvar _screenshotSvgDefault = parcelHelpers.interopDefault(_screenshotSvg);\nvar _settingSvg = require(\"bundle-text:./setting.svg\");\nvar _settingSvgDefault = parcelHelpers.interopDefault(_settingSvg);\nvar _arrowLeftSvg = require(\"bundle-text:./arrow-left.svg\");\nvar _arrowLeftSvgDefault = parcelHelpers.interopDefault(_arrowLeftSvg);\nvar _arrowRightSvg = require(\"bundle-text:./arrow-right.svg\");\nvar _arrowRightSvgDefault = parcelHelpers.interopDefault(_arrowRightSvg);\nvar _playbackRateSvg = require(\"bundle-text:./playback-rate.svg\");\nvar _playbackRateSvgDefault = parcelHelpers.interopDefault(_playbackRateSvg);\nvar _aspectRatioSvg = require(\"bundle-text:./aspect-ratio.svg\");\nvar _aspectRatioSvgDefault = parcelHelpers.interopDefault(_aspectRatioSvg);\nvar _configSvg = require(\"bundle-text:./config.svg\");\nvar _configSvgDefault = parcelHelpers.interopDefault(_configSvg);\nvar _pipSvg = require(\"bundle-text:./pip.svg\");\nvar _pipSvgDefault = parcelHelpers.interopDefault(_pipSvg);\nvar _lockSvg = require(\"bundle-text:./lock.svg\");\nvar _lockSvgDefault = parcelHelpers.interopDefault(_lockSvg);\nvar _unlockSvg = require(\"bundle-text:./unlock.svg\");\nvar _unlockSvgDefault = parcelHelpers.interopDefault(_unlockSvg);\nvar _fullscreenOffSvg = require(\"bundle-text:./fullscreen-off.svg\");\nvar _fullscreenOffSvgDefault = parcelHelpers.interopDefault(_fullscreenOffSvg);\nvar _fullscreenOnSvg = require(\"bundle-text:./fullscreen-on.svg\");\nvar _fullscreenOnSvgDefault = parcelHelpers.interopDefault(_fullscreenOnSvg);\nvar _fullscreenWebOffSvg = require(\"bundle-text:./fullscreen-web-off.svg\");\nvar _fullscreenWebOffSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOffSvg);\nvar _fullscreenWebOnSvg = require(\"bundle-text:./fullscreen-web-on.svg\");\nvar _fullscreenWebOnSvgDefault = parcelHelpers.interopDefault(_fullscreenWebOnSvg);\nvar _switchOnSvg = require(\"bundle-text:./switch-on.svg\");\nvar _switchOnSvgDefault = parcelHelpers.interopDefault(_switchOnSvg);\nvar _switchOffSvg = require(\"bundle-text:./switch-off.svg\");\nvar _switchOffSvgDefault = parcelHelpers.interopDefault(_switchOffSvg);\nvar _flipSvg = require(\"bundle-text:./flip.svg\");\nvar _flipSvgDefault = parcelHelpers.interopDefault(_flipSvg);\nvar _errorSvg = require(\"bundle-text:./error.svg\");\nvar _errorSvgDefault = parcelHelpers.interopDefault(_errorSvg);\nvar _closeSvg = require(\"bundle-text:./close.svg\");\nvar _closeSvgDefault = parcelHelpers.interopDefault(_closeSvg);\nvar _airplaySvg = require(\"bundle-text:./airplay.svg\");\nvar _airplaySvgDefault = parcelHelpers.interopDefault(_airplaySvg);\nclass Icons {\n constructor(art){\n const icons = {\n loading: (0, _loadingSvgDefault.default),\n state: (0, _stateSvgDefault.default),\n play: (0, _playSvgDefault.default),\n pause: (0, _pauseSvgDefault.default),\n check: (0, _checkSvgDefault.default),\n volume: (0, _volumeSvgDefault.default),\n volumeClose: (0, _volumeCloseSvgDefault.default),\n screenshot: (0, _screenshotSvgDefault.default),\n setting: (0, _settingSvgDefault.default),\n pip: (0, _pipSvgDefault.default),\n arrowLeft: (0, _arrowLeftSvgDefault.default),\n arrowRight: (0, _arrowRightSvgDefault.default),\n playbackRate: (0, _playbackRateSvgDefault.default),\n aspectRatio: (0, _aspectRatioSvgDefault.default),\n config: (0, _configSvgDefault.default),\n lock: (0, _lockSvgDefault.default),\n flip: (0, _flipSvgDefault.default),\n unlock: (0, _unlockSvgDefault.default),\n fullscreenOff: (0, _fullscreenOffSvgDefault.default),\n fullscreenOn: (0, _fullscreenOnSvgDefault.default),\n fullscreenWebOff: (0, _fullscreenWebOffSvgDefault.default),\n fullscreenWebOn: (0, _fullscreenWebOnSvgDefault.default),\n switchOn: (0, _switchOnSvgDefault.default),\n switchOff: (0, _switchOffSvgDefault.default),\n error: (0, _errorSvgDefault.default),\n close: (0, _closeSvgDefault.default),\n airplay: (0, _airplaySvgDefault.default),\n ...art.option.icons\n };\n for(const key in icons)(0, _utils.def)(this, key, {\n get: ()=>(0, _utils.getIcon)(key, icons[key])\n });\n }\n}\nexports.default = Icons;\n\n},{\"../utils\":\"2zmtQ\",\"bundle-text:./loading.svg\":\"hvcIK\",\"bundle-text:./state.svg\":\"lvrOo\",\"bundle-text:./check.svg\":\"dEWuy\",\"bundle-text:./play.svg\":\"bIRRL\",\"bundle-text:./pause.svg\":\"8qmIt\",\"bundle-text:./volume.svg\":\"d1KXb\",\"bundle-text:./volume-close.svg\":\"6M8TS\",\"bundle-text:./screenshot.svg\":\"1GD8Z\",\"bundle-text:./setting.svg\":\"jmLr7\",\"bundle-text:./arrow-left.svg\":\"8ACXK\",\"bundle-text:./arrow-right.svg\":\"eUczZ\",\"bundle-text:./playback-rate.svg\":\"cYmA3\",\"bundle-text:./aspect-ratio.svg\":\"8l32s\",\"bundle-text:./config.svg\":\"8Erz8\",\"bundle-text:./pip.svg\":\"gx5TO\",\"bundle-text:./lock.svg\":\"7IJRz\",\"bundle-text:./unlock.svg\":\"dBJfA\",\"bundle-text:./fullscreen-off.svg\":\"84gJT\",\"bundle-text:./fullscreen-on.svg\":\"eGYQU\",\"bundle-text:./fullscreen-web-off.svg\":\"aGs9s\",\"bundle-text:./fullscreen-web-on.svg\":\"1r85n\",\"bundle-text:./switch-on.svg\":\"fNd7D\",\"bundle-text:./switch-off.svg\":\"eCzDs\",\"bundle-text:./flip.svg\":\"84k5P\",\"bundle-text:./error.svg\":\"lMJEW\",\"bundle-text:./close.svg\":\"4Kq91\",\"bundle-text:./airplay.svg\":\"a7OND\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"hvcIK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lvrOo\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dEWuy\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"bIRRL\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8qmIt\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"d1KXb\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"6M8TS\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1GD8Z\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"jmLr7\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8ACXK\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eUczZ\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"cYmA3\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8l32s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"8Erz8\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"gx5TO\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"7IJRz\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"dBJfA\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84gJT\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eGYQU\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"aGs9s\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"1r85n\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"fNd7D\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"eCzDs\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"84k5P\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"lMJEW\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"4Kq91\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"a7OND\":[function(require,module,exports,__globalThis) {\nmodule.exports = \"\";\n\n},{}],\"9Bz5C\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _flip = require(\"./flip\");\nvar _flipDefault = parcelHelpers.interopDefault(_flip);\nvar _aspectRatio = require(\"./aspectRatio\");\nvar _aspectRatioDefault = parcelHelpers.interopDefault(_aspectRatio);\nvar _playbackRate = require(\"./playbackRate\");\nvar _playbackRateDefault = parcelHelpers.interopDefault(_playbackRate);\nvar _subtitleOffset = require(\"./subtitleOffset\");\nvar _subtitleOffsetDefault = parcelHelpers.interopDefault(_subtitleOffset);\nvar _component = require(\"../utils/component\");\nvar _componentDefault = parcelHelpers.interopDefault(_component);\nvar _utils = require(\"../utils\");\nclass Setting extends (0, _componentDefault.default) {\n constructor(art){\n super(art);\n const { option, controls, template: { $setting } } = art;\n this.name = 'setting';\n this.$parent = $setting;\n this.id = 0;\n this.active = null;\n this.cache = new Map();\n this.option = [\n ...this.builtin,\n ...option.settings\n ];\n if (option.setting) {\n this.format();\n this.render();\n art.on('blur', ()=>{\n if (this.show) {\n this.show = false;\n this.render();\n }\n });\n art.on('focus', (event)=>{\n const isControl = (0, _utils.includeFromEvent)(event, controls.setting);\n const isSetting = (0, _utils.includeFromEvent)(event, this.$parent);\n if (this.show && !isControl && !isSetting) {\n this.show = false;\n this.render();\n }\n });\n art.on('resize', ()=>this.resize());\n }\n }\n get builtin() {\n const result = [];\n const { option } = this.art;\n if (option.playbackRate) result.push((0, _playbackRateDefault.default)(this.art));\n if (option.aspectRatio) result.push((0, _aspectRatioDefault.default)(this.art));\n if (option.flip) result.push((0, _flipDefault.default)(this.art));\n if (option.subtitleOffset) result.push((0, _subtitleOffsetDefault.default)(this.art));\n return result;\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) this.traverse.call(this, callback, item.selector);\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) (0, _utils.inverseClass)(item.$item, 'art-current');\n }, target.$option);\n this.render(target.$parents);\n }\n format(option = this.option, parent, parents, names = []) {\n for(let index = 0; index < option.length; index++){\n const item = option[index];\n if (item?.name) {\n (0, _utils.errorHandle)(!names.includes(item.name), `The [${item.name}] already exists in [setting]`);\n names.push(item.name);\n } else item.name = `setting-${this.id++}`;\n if (!item.$formatted) {\n (0, _utils.def)(item, '$parent', {\n get: ()=>parent\n });\n (0, _utils.def)(item, '$parents', {\n get: ()=>parents\n });\n (0, _utils.def)(item, '$option', {\n get: ()=>option\n });\n const $events = [];\n (0, _utils.def)(item, '$events', {\n get: ()=>$events\n });\n (0, _utils.def)(item, '$formatted', {\n get: ()=>true\n });\n }\n this.format(item.selector || [], item, option, names);\n }\n this.option = option;\n }\n find(name = '') {\n let result = null;\n this.traverse((item)=>{\n if (item.name === name) result = item;\n });\n return result;\n }\n resize() {\n const { controls, constructor: { SETTING_WIDTH, SETTING_ITEM_HEIGHT }, template: { $player, $setting } } = this.art;\n if (controls.setting && this.show) {\n const settingWidth = this.active[0]?.$parent?.width || SETTING_WIDTH;\n const { left: controlLeft, width: controlWidth } = (0, _utils.getRect)(controls.setting);\n const { left: playerLeft, width: playerWidth } = (0, _utils.getRect)($player);\n const settingLeft = controlLeft - playerLeft + controlWidth / 2 - settingWidth / 2;\n const settingHeight = this.active === this.option ? this.active.length * SETTING_ITEM_HEIGHT : (this.active.length + 1) * SETTING_ITEM_HEIGHT;\n (0, _utils.setStyle)($setting, 'height', `${settingHeight}px`);\n (0, _utils.setStyle)($setting, 'width', `${settingWidth}px`);\n if (this.art.isRotate || (0, _utils.isMobile)) return;\n if (settingLeft + settingWidth > playerWidth) {\n (0, _utils.setStyle)($setting, 'left', null);\n (0, _utils.setStyle)($setting, 'right', null);\n } else {\n (0, _utils.setStyle)($setting, 'left', `${settingLeft}px`);\n (0, _utils.setStyle)($setting, 'right', 'auto');\n }\n }\n }\n inactivate(item) {\n for(let index = 0; index < item.$events.length; index++)this.art.events.remove(item.$events[index]);\n item.$events.length = 0;\n }\n remove(name) {\n const item = this.find(name);\n (0, _utils.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) (0, _utils.remove)(item.$item);\n this.render();\n }\n update(target) {\n const item = this.find(target.name);\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 return this.add(target);\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 createHeader(item) {\n if (!this.cache.has(item.$option)) return;\n const $panel = this.cache.get(item.$option);\n const { proxy, icons: { arrowLeft }, constructor: { SETTING_ITEM_HEIGHT } } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.setStyle)($item, 'height', `${SETTING_ITEM_HEIGHT}px`);\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.addClass)($item, 'art-setting-item-back');\n const $left = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n (0, _utils.append)($icon, arrowLeft);\n (0, _utils.append)($left, $icon);\n (0, _utils.append)($left, item.$parent.html);\n const event = proxy($item, 'click', ()=>this.render(item.$parents));\n item.$parent.$events.push(event);\n (0, _utils.append)($panel, $item);\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 let type = 'selector';\n if ((0, _utils.has)(item, 'switch')) type = 'switch';\n if ((0, _utils.has)(item, 'range')) type = 'range';\n if ((0, _utils.has)(item, 'onClick')) type = 'button';\n const { icons, proxy, constructor } = this.art;\n const $item = (0, _utils.createElement)('div');\n (0, _utils.addClass)($item, 'art-setting-item');\n (0, _utils.setStyle)($item, 'height', `${constructor.SETTING_ITEM_HEIGHT}px`);\n $item.dataset.name = item.name || '';\n $item.dataset.value = item.value || '';\n const $left = (0, _utils.append)($item, '
');\n const $right = (0, _utils.append)($item, '
');\n const $icon = (0, _utils.createElement)('div');\n (0, _utils.addClass)($icon, 'art-setting-item-left-icon');\n switch(type){\n case 'button':\n case 'switch':\n case 'range':\n (0, _utils.append)($icon, item.icon || icons.config);\n break;\n case 'selector':\n if (item.selector?.length) (0, _utils.append)($icon, item.icon || icons.config);\n else (0, _utils.append)($icon, icons.check);\n break;\n default:\n break;\n }\n (0, _utils.append)($left, $icon);\n (0, _utils.def)(item, '$icon', {\n configurable: true,\n get: ()=>$icon\n });\n (0, _utils.def)(item, 'icon', {\n configurable: true,\n get () {\n return $icon.innerHTML;\n },\n set (value) {\n $icon.innerHTML = '';\n (0, _utils.append)($icon, value);\n }\n });\n const $html = (0, _utils.createElement)('div');\n (0, _utils.addClass)($html, 'art-setting-item-left-text');\n (0, _utils.append)($html, item.html || '');\n (0, _utils.append)($left, $html);\n (0, _utils.def)(item, '$html', {\n configurable: true,\n get: ()=>$html\n });\n (0, _utils.def)(item, 'html', {\n configurable: true,\n get () {\n return $html.innerHTML;\n },\n set (value) {\n $html.innerHTML = '';\n (0, _utils.append)($html, value);\n }\n });\n const $tooltip = (0, _utils.createElement)('div');\n (0, _utils.addClass)($tooltip, 'art-setting-item-right-tooltip');\n (0, _utils.append)($tooltip, item.tooltip || '');\n (0, _utils.append)($right, $tooltip);\n (0, _utils.def)(item, '$tooltip', {\n configurable: true,\n get: ()=>$tooltip\n });\n (0, _utils.def)(item, 'tooltip', {\n configurable: true,\n get () {\n return $tooltip.innerHTML;\n },\n set (value) {\n $tooltip.innerHTML = '';\n (0, _utils.append)($tooltip, value);\n }\n });\n switch(type){\n case 'switch':\n {\n const $switch = (0, _utils.createElement)('div');\n (0, _utils.addClass)($switch, 'art-setting-item-right-icon');\n const $switchOn = (0, _utils.append)($switch, icons.switchOn);\n const $switchOff = (0, _utils.append)($switch, icons.switchOff);\n (0, _utils.setStyle)(item.switch ? $switchOff : $switchOn, 'display', 'none');\n (0, _utils.append)($right, $switch);\n (0, _utils.def)(item, '$switch', {\n configurable: true,\n get: ()=>$switch\n });\n let $switchValue = item.switch;\n (0, _utils.def)(item, 'switch', {\n configurable: true,\n get: ()=>$switchValue,\n set (value) {\n $switchValue = value;\n if (value) {\n (0, _utils.setStyle)($switchOff, 'display', 'none');\n (0, _utils.setStyle)($switchOn, 'display', null);\n } else {\n (0, _utils.setStyle)($switchOff, 'display', null);\n (0, _utils.setStyle)($switchOn, 'display', 'none');\n }\n }\n });\n break;\n }\n case 'range':\n {\n const $state = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n const $range = (0, _utils.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 (0, _utils.addClass)($range, 'art-setting-range');\n (0, _utils.append)($right, $state);\n (0, _utils.def)(item, '$range', {\n configurable: true,\n get: ()=>$range\n });\n let $rangeValue = [\n ...item.range\n ];\n (0, _utils.def)(item, 'range', {\n configurable: true,\n get: ()=>$rangeValue,\n set (value) {\n $rangeValue = [\n ...value\n ];\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 = (0, _utils.createElement)('div');\n (0, _utils.addClass)($state, 'art-setting-item-right-icon');\n (0, _utils.append)($state, icons.arrowRight);\n (0, _utils.append)($right, $state);\n }\n break;\n default:\n break;\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 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 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 case 'selector':\n {\n const event = proxy($item, 'click', async (event)=>{\n if (item.selector?.length) this.render(item.selector);\n else {\n this.check(item);\n if (item.$parent.onSelect) item.$parent.tooltip = await item.$parent.onSelect.call(this.art, item, $item, event);\n }\n });\n item.$events.push(event);\n if (item.default) (0, _utils.addClass)($item, 'art-current');\n }\n break;\n case 'button':\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 break;\n default:\n break;\n }\n (0, _utils.def)(item, '$item', {\n configurable: true,\n get: ()=>$item\n });\n if (isUpdate) (0, _utils.replaceElement)($item, oldItem);\n else (0, _utils.append)($panel, $item);\n if (item.mounted) setTimeout(()=>item.mounted.call(this.art, item.$item, item), 0);\n }\n render(option = this.option) {\n this.active = option;\n if (this.cache.has(option)) {\n const $panel = this.cache.get(option);\n (0, _utils.inverseClass)($panel, 'art-current');\n } else {\n const $panel = (0, _utils.createElement)('div');\n this.cache.set(option, $panel);\n (0, _utils.addClass)($panel, 'art-setting-panel');\n (0, _utils.append)(this.$parent, $panel);\n (0, _utils.inverseClass)($panel, 'art-current');\n if (option[0]?.$parent) this.createHeader(option[0]);\n for(let index = 0; index < option.length; index++)this.createItem(option[index]);\n }\n this.resize();\n }\n}\nexports.default = Setting;\n\n},{\"./flip\":\"8Xlqq\",\"./aspectRatio\":\"g0rEm\",\"./playbackRate\":\"p1PC0\",\"./subtitleOffset\":\"3ybiM\",\"../utils/component\":\"euCTd\",\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"8Xlqq\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>flip);\nvar _utils = require(\"../utils\");\nfunction flip(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, FLIP } } = art;\n function getI18n(value) {\n return i18n.get((0, _utils.capitalize)(value));\n }\n function update() {\n const target = art.setting.find(`flip-${art.flip}`);\n art.setting.check(target);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"g0rEm\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>aspectRatio);\nfunction aspectRatio(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, ASPECT_RATIO } } = art;\n function getI18n(value) {\n return value === 'default' ? i18n.get('Default') : value;\n }\n function update() {\n const target = art.setting.find(`aspect-ratio-${art.aspectRatio}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"p1PC0\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>playbackRate);\nfunction playbackRate(art) {\n const { i18n, icons, constructor: { SETTING_ITEM_WIDTH, PLAYBACK_RATE } } = art;\n function getI18n(value) {\n return value === 1.0 ? i18n.get('Normal') : value.toFixed(1);\n }\n function update() {\n const target = art.setting.find(`playback-rate-${art.playbackRate}`);\n art.setting.check(target);\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"3ybiM\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>subtitleOffset);\nfunction subtitleOffset(art) {\n const { i18n, icons, constructor } = art;\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: [\n 0,\n -10,\n 10,\n 0.1\n ],\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\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"ly2Yz\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nclass Storage {\n constructor(){\n this.name = 'artplayer_settings';\n this.settings = {};\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 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 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 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}\nexports.default = Storage;\n\n},{\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"enDIw\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nvar _utils = require(\"../utils\");\nvar _miniProgressBar = require(\"./miniProgressBar\");\nvar _miniProgressBarDefault = parcelHelpers.interopDefault(_miniProgressBar);\nvar _autoOrientation = require(\"./autoOrientation\");\nvar _autoOrientationDefault = parcelHelpers.interopDefault(_autoOrientation);\nvar _autoPlayback = require(\"./autoPlayback\");\nvar _autoPlaybackDefault = parcelHelpers.interopDefault(_autoPlayback);\nvar _fastForward = require(\"./fastForward\");\nvar _fastForwardDefault = parcelHelpers.interopDefault(_fastForward);\nvar _lock = require(\"./lock\");\nvar _lockDefault = parcelHelpers.interopDefault(_lock);\nclass Plugins {\n constructor(art){\n this.art = art;\n this.id = 0;\n const { option } = art;\n if (option.miniProgressBar && !option.isLive) this.add((0, _miniProgressBarDefault.default));\n if (option.lock && (0, _utils.isMobile)) this.add((0, _lockDefault.default));\n if (option.autoPlayback && !option.isLive) this.add((0, _autoPlaybackDefault.default));\n if (option.autoOrientation && (0, _utils.isMobile)) this.add((0, _autoOrientationDefault.default));\n if (option.fastForward && (0, _utils.isMobile) && !option.isLive) this.add((0, _fastForwardDefault.default));\n for(let index = 0; index < option.plugins.length; index++)this.add(option.plugins[index]);\n }\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this.art, this.art);\n if (result instanceof Promise) return result.then((res)=>this.next(plugin, res));\n else return this.next(plugin, result);\n }\n next(plugin, result) {\n const pluginName = result && result.name || plugin.name || `plugin${this.id}`;\n (0, _utils.errorHandle)(!(0, _utils.has)(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n (0, _utils.def)(this, pluginName, {\n value: result\n });\n return this;\n }\n}\nexports.default = Plugins;\n\n},{\"../utils\":\"2zmtQ\",\"./miniProgressBar\":\"dtvsV\",\"./autoOrientation\":\"aMOBX\",\"./autoPlayback\":\"kqk6e\",\"./fastForward\":\"Rwbar\",\"./lock\":\"cmd59\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"dtvsV\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>miniProgressBar);\nvar _utils = require(\"../utils\");\nfunction miniProgressBar(art) {\n art.on('control', (state)=>{\n if (state) (0, _utils.removeClass)(art.template.$player, 'art-mini-progress-bar');\n else (0, _utils.addClass)(art.template.$player, 'art-mini-progress-bar');\n });\n return {\n name: 'mini-progress-bar'\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"aMOBX\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoOrientation);\nvar _utils = require(\"../utils\");\nfunction autoOrientation(art) {\n const { constructor, template: { $player, $video } } = art;\n art.on('fullscreenWeb', (state)=>{\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) // There is a conflict with the fullscreen event, and it is changed to asynchronous execution\n setTimeout(()=>{\n (0, _utils.setStyle)($player, 'width', `${viewHeight}px`);\n (0, _utils.setStyle)($player, 'height', `${viewWidth}px`);\n (0, _utils.setStyle)($player, 'transform-origin', '0 0');\n (0, _utils.setStyle)($player, 'transform', `rotate(90deg) translate(0, -${viewWidth}px)`);\n (0, _utils.addClass)($player, 'art-auto-orientation');\n art.isRotate = true;\n art.emit('resize');\n }, constructor.AUTO_ORIENTATION_TIME);\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation')) {\n (0, _utils.removeClass)($player, 'art-auto-orientation');\n art.isRotate = false;\n art.emit('resize');\n }\n });\n art.on('fullscreen', async (state)=>{\n if (!screen?.orientation?.lock) return;\n const lastOrientation = screen.orientation.type;\n if (state) {\n const { videoWidth, videoHeight } = $video;\n const { clientWidth: viewWidth, clientHeight: viewHeight } = document.documentElement;\n if (videoWidth > videoHeight && viewWidth < viewHeight || videoWidth < videoHeight && viewWidth > viewHeight) {\n const oppositeOrientation = lastOrientation.startsWith('portrait') ? 'landscape' : 'portrait';\n await screen.orientation.lock(oppositeOrientation);\n (0, _utils.addClass)($player, 'art-auto-orientation-fullscreen');\n }\n } else if ((0, _utils.hasClass)($player, 'art-auto-orientation-fullscreen')) {\n await screen.orientation.lock(lastOrientation);\n (0, _utils.removeClass)($player, 'art-auto-orientation-fullscreen');\n }\n });\n return {\n name: 'autoOrientation',\n get state () {\n return (0, _utils.hasClass)($player, 'art-auto-orientation');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"kqk6e\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>autoPlayback);\nvar _utils = require(\"../utils\");\nfunction autoPlayback(art) {\n const { i18n, icons, storage, constructor, proxy, template: { $poster } } = art;\n const $autoPlayback = art.layers.add({\n name: 'auto-playback',\n html: `\n
\n
\n
\n `\n });\n const $last = (0, _utils.query)('.art-auto-playback-last', $autoPlayback);\n const $jump = (0, _utils.query)('.art-auto-playback-jump', $autoPlayback);\n const $close = (0, _utils.query)('.art-auto-playback-close', $autoPlayback);\n (0, _utils.append)($close, icons.close);\n let timer = null;\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) delete times[keys[0]];\n times[art.option.id || art.option.url] = art.currentTime;\n storage.set('times', times);\n }\n });\n function init() {\n const times = storage.get('times') || {};\n const currentTime = times[art.option.id || art.option.url];\n clearTimeout(timer);\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n if (currentTime && currentTime >= constructor.AUTO_PLAYBACK_MIN) {\n (0, _utils.setStyle)($autoPlayback, 'display', 'flex');\n $last.innerText = `${i18n.get('Last Seen')} ${(0, _utils.secondToTime)(currentTime)}`;\n $jump.innerText = i18n.get('Jump Play');\n proxy($close, 'click', ()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n proxy($jump, 'click', ()=>{\n art.seek = currentTime;\n art.play();\n (0, _utils.setStyle)($poster, 'display', 'none');\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n });\n art.once('video:timeupdate', ()=>{\n timer = setTimeout(()=>{\n (0, _utils.setStyle)($autoPlayback, 'display', 'none');\n }, constructor.AUTO_PLAYBACK_TIMEOUT);\n });\n }\n }\n art.on('ready', init);\n art.on('restart', init);\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\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"Rwbar\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>fastForward);\nvar _utils = require(\"../utils\");\nfunction fastForward(art) {\n const { constructor, proxy, template: { $player, $video } } = art;\n let timer = null;\n let isPress = false;\n let lastPlaybackRate = 1;\n const onStart = (event)=>{\n if (event.touches.length === 1 && art.playing && !art.isLock) timer = setTimeout(()=>{\n isPress = true;\n lastPlaybackRate = art.playbackRate;\n art.playbackRate = constructor.FAST_FORWARD_VALUE;\n (0, _utils.addClass)($player, 'art-fast-forward');\n }, constructor.FAST_FORWARD_TIME);\n };\n const onStop = ()=>{\n clearTimeout(timer);\n if (isPress) {\n isPress = false;\n art.playbackRate = lastPlaybackRate;\n (0, _utils.removeClass)($player, 'art-fast-forward');\n }\n };\n proxy($video, 'touchstart', onStart);\n proxy(document, 'touchmove', onStop);\n proxy(document, 'touchend', onStop);\n return {\n name: 'fastForward',\n get state () {\n return (0, _utils.hasClass)($player, 'art-fast-forward');\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}],\"cmd59\":[function(require,module,exports,__globalThis) {\nvar parcelHelpers = require(\"@parcel/transformer-js/src/esmodule-helpers.js\");\nparcelHelpers.defineInteropFlag(exports);\nparcelHelpers.export(exports, \"default\", ()=>lock);\nvar _utils = require(\"../utils\");\nfunction lock(art) {\n const { layers, icons, template: { $player } } = art;\n function getState() {\n return (0, _utils.hasClass)($player, 'art-lock');\n }\n function setLock() {\n (0, _utils.addClass)($player, 'art-lock');\n art.isLock = true;\n art.emit('lock', true);\n }\n function setUnlock() {\n (0, _utils.removeClass)($player, 'art-lock');\n art.isLock = false;\n art.emit('lock', false);\n }\n layers.add({\n name: 'lock',\n mounted ($el) {\n const $lock = (0, _utils.append)($el, icons.lock);\n const $unlock = (0, _utils.append)($el, icons.unlock);\n (0, _utils.setStyle)($lock, 'display', 'none');\n art.on('lock', (state)=>{\n if (state) {\n (0, _utils.setStyle)($lock, 'display', 'inline-flex');\n (0, _utils.setStyle)($unlock, 'display', 'none');\n } else {\n (0, _utils.setStyle)($lock, 'display', 'none');\n (0, _utils.setStyle)($unlock, 'display', 'inline-flex');\n }\n });\n },\n click () {\n if (getState()) setUnlock();\n else setLock();\n }\n });\n return {\n name: 'lock',\n get state () {\n return getState();\n },\n set state (value){\n if (value) setLock();\n else setUnlock();\n }\n };\n}\n\n},{\"../utils\":\"2zmtQ\",\"@parcel/transformer-js/src/esmodule-helpers.js\":\"w4pLy\"}]},[\"4omrA\"], \"4omrA\", \"parcelRequireb749\", {})\nlet {default: _default, } = parcelRequireb749(\"4omrA\");\nexport {_default as default, };\n\n//# sourceMappingURL=index.js.map\n","import { version } from '../package.json';\nimport 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 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 version;\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","{\n \"license\": \"MIT\",\n \"name\": \"artplayer\",\n \"version\": \"5.2.5\",\n \"main\": \"dist/artplayer.js\",\n \"legacy\": \"dist/artplayer.legacy.js\",\n \"types\": \"types/artplayer.d.ts\",\n \"homepage\": \"https://artplayer.org\",\n \"author\": \"Harvey Zack \",\n \"browserslist\": \"last 1 Chrome version\",\n \"description\": \"ArtPlayer.js is a modern and full featured HTML5 video player\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/zhw2590582/ArtPlayer.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/zhw2590582/ArtPlayer/issues\"\n },\n \"keywords\": [\n \"html5\",\n \"video\",\n \"player\"\n ],\n \"dependencies\": {\n \"option-validator\": \"^2.0.6\"\n }\n}","module.exports = \"3f6ec9ee3af91a27\";","!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 { version } from '../package.json';\nimport { 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
${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 (typeof top === 'number' && typeof left === 'number') {\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","import { version } from '../../package.json';\n\nexport default function (option) {\n return {\n ...option,\n html: `ArtPlayer ${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 = \"79356f8a9eaedcd3\";","module.exports = \"9b8da831195a0296\";","module.exports = \"fefbfac2b4688a15\";","module.exports = \"1c2f0d275a3e6c14\";","module.exports = \"0f0db61f72c3e5d7\";","module.exports = \"8bc480c9256a1b55\";","module.exports = \"02a59ee0095ec3a9\";","module.exports = \"933bfb2aaa61ebcc\";","module.exports = \"d8947f3fc30104b7\";","module.exports = \"6f55837680f4a829\";","module.exports = \"9d31a30750a7cb4b\";","module.exports = \"0000856937620744\";","module.exports = \"ff1d4e50282a344a\";","module.exports = \"9813d2a46ceed07c\";","module.exports = \"b57bb39e41ccb640\";","module.exports = \"7fb917337b416149\";","module.exports = \"b2dac719b3f940e4\";","module.exports = \"789dab71a67d9e3d\";","module.exports = \"50bc39a19ece62a6\";","module.exports = \"4cd5fe480df753c8\";","module.exports = \"5e79755fabb04f07\";","module.exports = \"20b111129b61a679\";","module.exports = \"e24e6a114fe8d011\";","module.exports = \"cdfad49422dff32c\";","module.exports = \"269ca28002b4a2e4\";","module.exports = \"bffe06d8410d947f\";","module.exports = \"a85d72ae7ad1ec63\";","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}] already exists 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":["modules","entry","mainEntry","parcelRequireName","externals","distDir","publicUrl","devServer","globalObject","globalThis","self","window","global","previousRequire","importMap","i","cache","nodeRequire","module","require","bind","newRequire","name","jumped","currentRequire","err","Error","code","localRequire","resolve","x","id","Module","call","exports","res","isParcelRequire","moduleName","bundle","parent","register","Object","defineProperty","get","length","mainExports","define","amd","__globalThis","parcelHelpers","defineInteropFlag","_packageJson","_indexLess","_indexLessDefault","interopDefault","_optionValidator","_optionValidatorDefault","_emitter","_emitterDefault","_utils","_scheme","_schemeDefault","_config","_configDefault","_template","_templateDefault","_i18N","_i18NDefault","_player","_playerDefault","_control","_controlDefault","_contextmenu","_contextmenuDefault","_info","_infoDefault","_subtitle","_subtitleDefault","_events","_eventsDefault","_hotkey","_hotkeyDefault","_layer","_layerDefault","_loading","_loadingDefault","_notice","_noticeDefault","_mask","_maskDefault","_icons","_iconsDefault","_setting","_settingDefault","_storage","_storageDefault","_plugins","_pluginsDefault","instances","Artplayer","default","constructor","option","readyCallback","mergeOption","mergeDeep","container","isLock","isReady","isFocus","isInput","isRotate","isDestroy","template","events","storage","icons","i18n","notice","player","layers","controls","contextmenu","subtitle","info","loading","hotkey","mask","setting","plugins","on","DEBUG","log","msg","console","version","index","event","type","push","config","utils","scheme","Emitter","validator","kindOf","html","url","poster","theme","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","playbackRate","aspectRatio","screenshot","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","useSSR","playsInline","lock","gesture","fastForward","autoPlayback","autoOrientation","airplay","proxy","undefined","settings","quality","highlight","thumbnails","number","column","width","height","scale","style","escape","encoding","onVttLoad","vtt","moreVideoAttr","preload","isSafari","cssVar","customType","lang","navigator","language","toLowerCase","query","video","$video","destroy","removeHtml","splice","indexOf","emit","STYLE","CONTEXTMENU","NOTICE_TIME","SETTING_WIDTH","SETTING_ITEM_WIDTH","SETTING_ITEM_HEIGHT","RESIZE_TIME","SCROLL_TIME","SCROLL_GAP","AUTO_PLAYBACK_MAX","AUTO_PLAYBACK_MIN","AUTO_PLAYBACK_TIMEOUT","RECONNECT_TIME_MAX","RECONNECT_SLEEP_TIME","CONTROL_HIDE_TIME","DBCLICK_TIME","DBCLICK_FULLSCREEN","MOBILE_DBCLICK_PLAY","MOBILE_CLICK_PLAY","AUTO_ORIENTATION_TIME","INFO_LOOP_TIME","FAST_FORWARD_VALUE","FAST_FORWARD_TIME","TOUCH_MOVE_RATIO","VOLUME_STEP","SEEK_STEP","PLAYBACK_RATE","ASPECT_RATIO","FLIP","FULLSCREEN_WEB_IN_BODY","LOG_VERSION","USE_RAF","isBrowser","setStyleText","setTimeout","JSON","parse","t","e","r","Symbol","iterator","prototype","n","toString","c","o","Array","isArray","isBuffer","callee","message","Date","toDateString","getDate","setDate","stackTraceLimit","RegExp","flags","ignoreCase","multiline","throw","return","next","slice","replace","f","arguments","s","y","a","u","concat","join","keys","forEach","split","map","trim","filter","Boolean","some","fn","ctx","once","listener","args","off","apply","_","data","evtArr","callback","evts","liveEvents","len","__esModule","value","exportAll","source","dest","key","hasOwnProperty","enumerable","export","destName","_dom","_error","_file","_property","_time","_format","_compatibility","queryAll","addClass","removeClass","hasClass","append","remove","setStyle","setStyles","getStyle","siblings","inverseClass","tooltip","isInViewport","includeFromEvent","replaceElement","createElement","getIcon","supportsFlex","getRect","loadImg","selector","document","querySelector","from","querySelectorAll","target","className","classList","add","contains","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","element","styles","numberType","getComputedStyle","getPropertyValue","parseFloat","parentElement","children","item","pos","isMobile","setAttribute","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","horInView","left","composedPath","newChild","oldChild","replaceChild","tag","icon","$style","getElementById","readyState","addEventListener","head","textContent","div","display","Promise","reject","img","Image","onload","canvas","getContext","drawImage","toBlob","blob","blobUrl","URL","createObjectURL","scaledImg","onerror","revokeObjectURL","src","userAgent","isWechat","isIE","isAndroid","isIOS","isIOS13","CUSTOM_USER_AGENT","test","MSStream","includes","maxTouchPoints","ArtPlayerError","errorHandle","context","captureStackTrace","condition","srtToVtt","srtText","fixSrt","srt","$1","$2","ms","vttToBlob","vttText","Blob","assToVtt","ass","reAss","fixTime","time","arr","line","m","match","start","end","text","download","elink","href","body","click","getExt","pop","def","has","objects","isObject","reduce","prev","obj","pVal","oVal","getOwnPropertyDescriptor","sleep","debounce","func","duration","timeout","clearTimeout","throttle","shouldWait","clamp","num","b","Math","max","min","capitalize","str","charAt","toUpperCase","secondToTime","second","hour","floor","sec","unescape","reg","ComponentOption","validElement","paths","disable","mounted","onSelect","switch","onSwitch","range","onRange","onChange","position","properties","methods","prototypes","Template","art","$container","tagName","every","ins","dataset","artId","init","innerHTML","$player","$track","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsCenter","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$info","$infoPanel","$infoClose","$contextmenu","HTMLVideoElement","HTMLCanvasElement","_zhCn","_zhCnDefault","languages","update","zhCn","Close","Volume","Play","Pause","Rate","Mute","Horizontal","Vertical","Reconnect","Screenshot","Default","Normal","Open","Fullscreen","AirPlay","_urlMix","_urlMixDefault","_attrMix","_attrMixDefault","_playMix","_playMixDefault","_pauseMix","_pauseMixDefault","_toggleMix","_toggleMixDefault","_seekMix","_seekMixDefault","_volumeMix","_volumeMixDefault","_currentTimeMix","_currentTimeMixDefault","_durationMix","_durationMixDefault","_switchMix","_switchMixDefault","_playbackRateMix","_playbackRateMixDefault","_aspectRatioMix","_aspectRatioMixDefault","_screenshotMix","_screenshotMixDefault","_fullscreenMix","_fullscreenMixDefault","_fullscreenWebMix","_fullscreenWebMixDefault","_pipMix","_pipMixDefault","_loadedMix","_loadedMixDefault","_playedMix","_playedMixDefault","_playingMix","_playingMixDefault","_autoSizeMix","_autoSizeMixDefault","_rectMix","_rectMixDefault","_flipMix","_flipMixDefault","_miniMix","_miniMixDefault","_posterMix","_posterMixDefault","_autoHeightMix","_autoHeightMixDefault","_cssVarMix","_cssVarMixDefault","_themeMix","_themeMixDefault","_typeMix","_typeMixDefault","_stateMix","_stateMixDefault","_subtitleOffsetMix","_subtitleOffsetMixDefault","_airplayMix","_airplayMixDefault","_qualityMix","_qualityMixDefault","_thumbnailsMix","_thumbnailsMixDefault","_optionInit","_optionInitDefault","_eventInit","_eventInitDefault","urlMix","set","newUrl","oldUrl","typeName","typeCallback","show","attrMix","playMix","result","play","instance","pause","pauseMix","toggleMix","playing","seekMix","currentTime","seek","volumeMix","percentage","parseInt","currentTimeMix","Number","isNaN","durationMix","Infinity","switchMix","switchUrl","playbackRateMix","rate","aspectRatioMix","ratio","ratioArray","setupRatio","playerRatio","screenshotMix","$canvas","videoWidth","videoHeight","toDataURL","dataUri","getDataURL","fileName","fullscreenMix","_screenfull","_screenfullDefault","nativeScreenfull","isFullscreen","state","request","exit","webkitScreenfull","fullscreenElement","webkitEnterFullscreen","webkitExitFullscreen","isEnabled","webkitSupportsFullscreen","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","method","entries","eventNameMap","change","fullscreenchange","error","fullscreenerror","screenfull","options","onFullScreenEntered","returnPromise","requestFullscreen","then","catch","onFullScreenExit","exitFullscreen","toggle","onchange","eventName","removeEventListener","raw","defineProperties","fullscreenEnabled","fullscreenWebMix","cssText","pipMix","pictureInPictureEnabled","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitSupportsPresentationMode","webkitPip","webkitSetPresentationMode","webkitPresentationMode","loadedMix","loadedTime","buffered","playedMix","playingMix","paused","ended","autoSizeMix","videoRatio","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","miniMix","isDragging","lastPageX","lastPageY","hideMini","$mini","prepend","initState","$play","$pause","initMini","createMini","$close","close","button","pageX","pageY","posterMix","autoHeightMix","cssVarMix","setProperty","themeMix","typeMix","stateMix","states","find","prop","subtitleOffsetMix","cues","cue","originalStartTime","startTime","originalEndTime","endTime","airplayMix","available","WebKitPlaybackTargetAvailabilityEvent","webkitShowPlaybackTargetPicker","availability","qualityMix","qualityDefault","marginRight","switchQuality","thumbnailsMix","timer","image","isLoad","isHover","hover","$thumbnails","isMobileDragging","showThumbnails","posWidth","width2","naturalWidth","height2","perIndex","yIndex","ceil","xIndex","optionInit","attr","volumeStorage","eventInit","reconnectTime","_component","_componentDefault","_fullscreen","_fullscreenDefault","_fullscreenWeb","_fullscreenWebDefault","_pip","_pipDefault","_playAndPause","_playAndPauseDefault","_progress","_progressDefault","_timeDefault","_volume","_volumeDefault","_screenshot","_screenshotDefault","_airplay","_airplayDefault","Control","now","getOption","$parent","check","$control_value","$control_option","$control_item","$ref","$value","innerText","$list","$item","path","Map","childs","nextChild","insertAdjacentElement","destroyEvent","preventDefault","beforeUnmount","delete","assign","$control","$fullscreenOn","fullscreenOn","$fullscreenOff","fullscreenOff","$fullscreenWebOn","fullscreenWebOn","$fullscreenWebOff","fullscreenWebOff","playAndPause","showPlay","showPause","getPosFromEvent","setCurrentTime","progress","eventLeft","touches","clientX","clientY","tipTimer","$hover","$loaded","$played","$highlight","$indicator","$tip","showTime","touch","tipWidth","indicator","played","loaded","showHighlight","fontSize","padding","cursor","getTime","newTime","$volume","volumeClose","$panel","$inner","$slider","$handle","getVolumeFromEvent","resize","_playbackRate","_playbackRateDefault","_aspectRatio","_aspectRatioDefault","_flip","_flipDefault","_version","_versionDefault","_close","_closeDefault","Contextmenu","mouseX","mouseY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","toFixed","$default","$current","Info","$types","Subtitle","lastState","webkitDisplayingFullscreen","createTrack","textTrack","textTracks","activeCues","newOption","subtitleOption","subUrl","kind","$newTrack","label","track","mode","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","vttNew","_clickInit","_clickInitDefault","_hoverInit","_hoverInitDefault","_moveInit","_moveInitDefault","_resizeInit","_resizeInitDefault","_gestureInit","_gestureInitDefault","_viewInit","_viewInitDefault","_documentInit","_documentInitDefault","_updateInit","_updateInitDefault","_restoreInit","_restoreInitDefault","destroyEvents","mouseenter","mouseleave","clickInit","clickTimes","clicks","hoverInit","moveInit","resizeInit","resizeFn","screen","orientation","gestureInit","touchTarget","startX","startY","onTouchStart","onTouchMove","direction","GetSlideDirection","endX","endY","dy","dx","abs","angle","atan2","PI","isHorizontal","isVertical","ratioX","ratioY","viewInit","scrollFn","mini","documentInit","updateInit","requestAnimationFrame","cancelAnimationFrame","restoreInit","backward","forward","activeElement","editable","getAttribute","altKey","ctrlKey","metaKey","shiftKey","Layer","Loading","Mask","$error","_loadingSvg","_loadingSvgDefault","_stateSvg","_stateSvgDefault","_checkSvg","_checkSvgDefault","_playSvg","_playSvgDefault","_pauseSvg","_pauseSvgDefault","_volumeSvg","_volumeSvgDefault","_volumeCloseSvg","_volumeCloseSvgDefault","_screenshotSvg","_screenshotSvgDefault","_settingSvg","_settingSvgDefault","_arrowLeftSvg","_arrowLeftSvgDefault","_arrowRightSvg","_arrowRightSvgDefault","_playbackRateSvg","_playbackRateSvgDefault","_aspectRatioSvg","_aspectRatioSvgDefault","_configSvg","_configSvgDefault","_pipSvg","_pipSvgDefault","_lockSvg","_lockSvgDefault","_unlockSvg","_unlockSvgDefault","_fullscreenOffSvg","_fullscreenOffSvgDefault","_fullscreenOnSvg","_fullscreenOnSvgDefault","_fullscreenWebOffSvg","_fullscreenWebOffSvgDefault","_fullscreenWebOnSvg","_fullscreenWebOnSvgDefault","_switchOnSvg","_switchOnSvgDefault","_switchOffSvg","_switchOffSvgDefault","_flipSvg","_flipSvgDefault","_errorSvg","_errorSvgDefault","_closeSvg","_closeSvgDefault","_airplaySvg","_airplaySvgDefault","arrowLeft","arrowRight","unlock","switchOn","switchOff","_subtitleOffset","_subtitleOffsetDefault","Setting","active","builtin","format","render","isControl","isSetting","traverse","$option","$parents","parents","names","$formatted","$events","settingWidth","controlLeft","controlWidth","playerLeft","playerWidth","settingLeft","settingHeight","inactivate","createItem","createHeader","$left","$icon","isUpdate","oldItem","$right","configurable","$html","$tooltip","$switch","$switchOn","$switchOff","$switchValue","$range","step","$rangeValue","valueAsNumber","onClick","getI18n","localStorage","getItem","setItem","stringify","del","clear","removeItem","_miniProgressBar","_miniProgressBarDefault","_autoOrientation","_autoOrientationDefault","_autoPlayback","_autoPlaybackDefault","_fastForward","_fastForwardDefault","_lock","_lockDefault","plugin","pluginName","viewWidth","viewHeight","lastOrientation","oppositeOrientation","startsWith","$autoPlayback","$last","$jump","times","isPress","lastPlaybackRate","onStop","getState","setLock","setUnlock","$el","$lock","$unlock","_default","parcelRequireb749"],"version":3,"file":"index.js.map"} \ No newline at end of file diff --git a/packages/artplayer/dist/artplayer.js b/packages/artplayer/dist/artplayer.js index ca4221f08..c234795b0 100644 --- a/packages/artplayer/dist/artplayer.js +++ b/packages/artplayer/dist/artplayer.js @@ -1,8 +1,8 @@ /*! - * artplayer.js v5.2.4 + * artplayer.js v5.2.5 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}G.push(this)}static get instances(){return G}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),G.splice(G.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"aQnLI","bundle-text:./style/index.less":"6KiDz","option-validator":"49gY0","./utils/emitter":"b0EdR","./utils":"gpvEP","./scheme":"bEi0U","./config":"eQRJX","./template":"dokTM","./i18n":"1bZfm","./player":"3xuL2","./control":"4zOCk","./contextmenu":"iAXzm","./info":"bFUCG","./subtitle":"lEARb","./events":"fpHt3","./hotkey":"9z96t","./layer":"e9ahx","./loading":"hlSVU","./notice":"eDyfI","./mask":"uwUok","./icons":"1F2QO","./setting":"aqPSH","./storage":"48Pli","./plugins":"eOOz3","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aQnLI:[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.4","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","module":"dist/artplayer.esm.js","types":"types/artplayer.d.ts","exports":{"import":"./dist/artplayer.esm.js","require":"./dist/artplayer.js","default":"./dist/artplayer.js"},"homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"6KiDz":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],"49gY0":[function(e,t,r,a){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>E),o.export(r,"getRect",()=>z),o.export(r,"loadImg",()=>$);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function E(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function z(e){return e.getBoundingClientRect()}function $(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"h19pd","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],h19pd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9OXL0":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dSV4f:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8Ue1J":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6OkQd":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"55T7g":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4YeYK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bEi0U:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eQRJX:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dokTM:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"aQnLI","./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1bZfm":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"gpvEP","./zh-cn":"kRuwK","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kRuwK:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3xuL2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),E=e("./playbackRateMix"),z=o.interopDefault(E),$=e("./aspectRatioMix"),I=o.interopDefault($),T=e("./screenshotMix"),M=o.interopDefault(T),F=e("./fullscreenMix"),P=o.interopDefault(F),C=e("./fullscreenWebMix"),D=o.interopDefault(C),A=e("./pipMix"),R=o.interopDefault(A),L=e("./loadedMix"),O=o.interopDefault(L),q=e("./playedMix"),_=o.interopDefault(q),H=e("./playingMix"),V=o.interopDefault(H),N=e("./autoSizeMix"),B=o.interopDefault(N),U=e("./rectMix"),Y=o.interopDefault(U),W=e("./flipMix"),K=o.interopDefault(W),Q=e("./miniMix"),X=o.interopDefault(Q),Z=e("./posterMix"),G=o.interopDefault(Z),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,z.default)(e),(0,I.default)(e),(0,M.default)(e),(0,P.default)(e),(0,D.default)(e),(0,R.default)(e),(0,O.default)(e),(0,_.default)(e),(0,V.default)(e),(0,B.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,X.default)(e),(0,G.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"hXrQD","./attrMix":"6pNgq","./playMix":"krR40","./pauseMix":"eFrQn","./toggleMix":"5mk0x","./seekMix":"kNVxo","./volumeMix":"j0CPw","./currentTimeMix":"3Qlk2","./durationMix":"ej83c","./switchMix":"4DKMC","./playbackRateMix":"3q2BJ","./aspectRatioMix":"kKNdy","./screenshotMix":"jEOGf","./fullscreenMix":"6fcMx","./fullscreenWebMix":"2fgOZ","./pipMix":"7ctTv","./loadedMix":"748cK","./playedMix":"2v3kJ","./playingMix":"7NTUH","./autoSizeMix":"lVqio","./rectMix":"i0rvQ","./flipMix":"f8acK","./miniMix":"htzAz","./posterMix":"iIy8c","./autoHeightMix":"4JyZb","./cssVarMix":"9iyPY","./themeMix":"7NNfU","./typeMix":"ipJQa","./stateMix":"6P1Bw","./subtitleOffsetMix":"eqBmH","./airplayMix":"etKzV","./qualityMix":"1CuDr","./thumbnailsMix":"63zKA","./optionInit":"cIuaY","./eventInit":"lqh1e","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],hXrQD:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6pNgq":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],krR40:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5mk0x":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kNVxo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j0CPw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3Qlk2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ej83c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4DKMC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3q2BJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kKNdy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],jEOGf:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6fcMx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"kQNoU","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kQNoU:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2fgOZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7ctTv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"748cK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2v3kJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NTUH":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lVqio:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],i0rvQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],f8acK:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],htzAz:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iIy8c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4JyZb":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9iyPY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NNfU":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ipJQa:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6P1Bw":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1CuDr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"63zKA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cIuaY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lqh1e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"eQRJX","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4zOCk":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),E=e("./airplay"),z=o.interopDefault(E),$=e("../utils");class I extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{$.isMobile||(this.show=!0)}),e.on("click",()=>{$.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,$.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,$.removeClass)(r,"art-hide-cursor"),(0,$.addClass)(r,"art-hover"),this.timer=Date.now()):((0,$.addClass)(r,"art-hide-cursor"),(0,$.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,$.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!$.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,z.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,$.def)(r,"$control_item",{get:()=>a}),(0,$.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=I},{"../utils/component":"j4qZZ","./fullscreen":"7juzt","./fullscreenWeb":"dukaq","./pip":"lt0U6","./playAndPause":"eyIIx","./progress":"2S7vj","./time":"bgLbI","./volume":"lA6hu","./setting":"cH3Og","./screenshot":"gGGQI","./airplay":"4TMBv","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j4qZZ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dukaq:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lt0U6:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eyIIx:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2S7vj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bgLbI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cH3Og:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],gGGQI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4TMBv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iAXzm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"gpvEP","../utils/component":"j4qZZ","./playbackRate":"9jior","./aspectRatio":"igCMy","./flip":"4eLts","./info":"kETiY","./version":"abcPF","./close":"aWF54","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9jior":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],igCMy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4eLts":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kETiY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],abcPF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"aQnLI","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aWF54:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bFUCG:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"gpvEP","./utils/component":"j4qZZ","option-validator":"49gY0","./scheme":"bEi0U","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],fpHt3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8qahy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5Eivu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"905Dr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8F0uv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"gpvEP","../control/progress":"2S7vj","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"26qSX":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9wES9":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cY9iQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3YYY5":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9z96t":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],uwUok:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"gpvEP","./utils/component":"j4qZZ","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1F2QO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),E=o.interopDefault(S),z=e("bundle-text:./arrow-right.svg"),$=o.interopDefault(z),I=e("bundle-text:./playback-rate.svg"),T=o.interopDefault(I),M=e("bundle-text:./aspect-ratio.svg"),F=o.interopDefault(M),P=e("bundle-text:./config.svg"),C=o.interopDefault(P),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),L=o.interopDefault(R),O=e("bundle-text:./unlock.svg"),q=o.interopDefault(O),_=e("bundle-text:./fullscreen-off.svg"),H=o.interopDefault(_),V=e("bundle-text:./fullscreen-on.svg"),N=o.interopDefault(V),B=e("bundle-text:./fullscreen-web-off.svg"),U=o.interopDefault(B),Y=e("bundle-text:./fullscreen-web-on.svg"),W=o.interopDefault(Y),K=e("bundle-text:./switch-on.svg"),Q=o.interopDefault(K),X=e("bundle-text:./switch-off.svg"),Z=o.interopDefault(X),G=e("bundle-text:./flip.svg"),J=o.interopDefault(G),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:E.default,arrowRight:$.default,playbackRate:T.default,aspectRatio:F.default,config:C.default,lock:L.default,flip:J.default,unlock:q.default,fullscreenOff:H.default,fullscreenOn:N.default,fullscreenWebOff:U.default,fullscreenWebOn:W.default,switchOn:Q.default,switchOff:Z.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"gpvEP","bundle-text:./loading.svg":"OH22M","bundle-text:./state.svg":"exeDr","bundle-text:./check.svg":"jDV5m","bundle-text:./play.svg":"8azN4","bundle-text:./pause.svg":"5ROTD","bundle-text:./volume.svg":"gd6yR","bundle-text:./volume-close.svg":"3xcqi","bundle-text:./screenshot.svg":"4bQmt","bundle-text:./setting.svg":"8JYeE","bundle-text:./arrow-left.svg":"1vtAE","bundle-text:./arrow-right.svg":"89K7J","bundle-text:./playback-rate.svg":"aboDI","bundle-text:./aspect-ratio.svg":"iXCLk","bundle-text:./config.svg":"f8v0I","bundle-text:./pip.svg":"5TDKn","bundle-text:./lock.svg":"7ioy7","bundle-text:./unlock.svg":"8M4rv","bundle-text:./fullscreen-off.svg":"iY4Nz","bundle-text:./fullscreen-on.svg":"8DF0G","bundle-text:./fullscreen-web-off.svg":"64eDf","bundle-text:./fullscreen-web-on.svg":"gxLKk","bundle-text:./switch-on.svg":"1a3p7","bundle-text:./switch-off.svg":"ioXaN","bundle-text:./flip.svg":"ghEK8","bundle-text:./error.svg":"3iobs","bundle-text:./close.svg":"dhbAn","bundle-text:./airplay.svg":"hbZQA","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],OH22M:[function(e,t,r,a){t.exports=''},{}],exeDr:[function(e,t,r,a){t.exports=''},{}],jDV5m:[function(e,t,r,a){t.exports=''},{}],"8azN4":[function(e,t,r,a){t.exports=''},{}],"5ROTD":[function(e,t,r,a){t.exports=''},{}],gd6yR:[function(e,t,r,a){t.exports=''},{}],"3xcqi":[function(e,t,r,a){t.exports=''},{}],"4bQmt":[function(e,t,r,a){t.exports=''},{}],"8JYeE":[function(e,t,r,a){t.exports=''},{}],"1vtAE":[function(e,t,r,a){t.exports=''},{}],"89K7J":[function(e,t,r,a){t.exports=''},{}],aboDI:[function(e,t,r,a){t.exports=''},{}],iXCLk:[function(e,t,r,a){t.exports=''},{}],f8v0I:[function(e,t,r,a){t.exports=''},{}],"5TDKn":[function(e,t,r,a){t.exports=''},{}],"7ioy7":[function(e,t,r,a){t.exports=''},{}],"8M4rv":[function(e,t,r,a){t.exports=''},{}],iY4Nz:[function(e,t,r,a){t.exports=''},{}],"8DF0G":[function(e,t,r,a){t.exports=''},{}],"64eDf":[function(e,t,r,a){t.exports=''},{}],gxLKk:[function(e,t,r,a){t.exports=''},{}],"1a3p7":[function(e,t,r,a){t.exports=''},{}],ioXaN:[function(e,t,r,a){t.exports=''},{}],ghEK8:[function(e,t,r,a){t.exports=''},{}],"3iobs":[function(e,t,r,a){t.exports=''},{}],dhbAn:[function(e,t,r,a){t.exports=''},{}],hbZQA:[function(e,t,r,a){t.exports=''},{}],aqPSH:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6Hidr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3qrNj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4G52T":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"48Pli":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eOOz3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"gpvEP","./miniProgressBar":"bAQc0","./autoOrientation":"31jHc","./autoPlayback":"UojkI","./fastForward":"k8rjo","./lock":"ifBkM","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bAQc0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"31jHc":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],UojkI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],k8rjo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ifBkM:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}]},["jz4E5"],"jz4E5","parcelRequireb749",{}); \ No newline at end of file +!function(e,t,r,a,o,i,n,s){var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},c="function"==typeof l[a]&&l[a],p=c.i||{},u=c.cache||{},d="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!u[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof l[a]&&l[a];if(!r&&i)return i(t,!0);if(c)return c(t,!0);if(d&&"string"==typeof t)return d(t);var n=Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}p.resolve=function(r){var a=e[t][1][r];return null!=a?a:r},p.cache={};var s=u[t]=new f.Module(t);e[t][0].call(s.exports,p,s,s.exports,l)}return u[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=d,this.exports={}},f.modules=e,f.cache=u,f.parent=c,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=p,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return l[a]}}),l[a]=f;for(var h=0;ht.call(this,this)),J.DEBUG){let e=e=>console.log(`[ART.${this.id}] -> ${e}`);e("Version@"+J.version);for(let t=0;te("Event@"+t.type))}G.push(this)}static get instances(){return G}static get version(){return i.version}static get config(){return g.default}static get utils(){return d}static get scheme(){return h.default}static get Emitter(){return u.default}static get validator(){return c.default}static get kindOf(){return c.default.kindOf}static get html(){return y.default.html}static get option(){return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:e=>e},moreVideoAttr:{controls:!1,preload:d.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:navigator?.language.toLowerCase()}}get proxy(){return this.events.proxy}get query(){return this.template.query}get video(){return this.template.$video}destroy(e=!0){this.events.destroy(),this.template.destroy(e),G.splice(G.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}r.default=J,J.STYLE=s.default,J.DEBUG=!1,J.CONTEXTMENU=!0,J.NOTICE_TIME=2e3,J.SETTING_WIDTH=250,J.SETTING_ITEM_WIDTH=200,J.SETTING_ITEM_HEIGHT=35,J.RESIZE_TIME=200,J.SCROLL_TIME=200,J.SCROLL_GAP=50,J.AUTO_PLAYBACK_MAX=10,J.AUTO_PLAYBACK_MIN=5,J.AUTO_PLAYBACK_TIMEOUT=3e3,J.RECONNECT_TIME_MAX=5,J.RECONNECT_SLEEP_TIME=1e3,J.CONTROL_HIDE_TIME=3e3,J.DBCLICK_TIME=300,J.DBCLICK_FULLSCREEN=!0,J.MOBILE_DBCLICK_PLAY=!0,J.MOBILE_CLICK_PLAY=!1,J.AUTO_ORIENTATION_TIME=200,J.INFO_LOOP_TIME=1e3,J.FAST_FORWARD_VALUE=3,J.FAST_FORWARD_TIME=1e3,J.TOUCH_MOVE_RATIO=.5,J.VOLUME_STEP=.1,J.SEEK_STEP=5,J.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],J.ASPECT_RATIO=["default","4:3","16:9"],J.FLIP=["normal","horizontal","vertical"],J.FULLSCREEN_WEB_IN_BODY=!1,J.LOG_VERSION=!0,J.USE_RAF=!1,d.isBrowser&&(window.Artplayer=J,d.setStyleText("artplayer-style",s.default),setTimeout(()=>{J.LOG_VERSION&&console.log(`%c ArtPlayer %c ${J.version} %c https://artplayer.org`,"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"../package.json":"aQnLI","bundle-text:./style/index.less":"6KiDz","option-validator":"49gY0","./utils/emitter":"b0EdR","./utils":"gpvEP","./scheme":"bEi0U","./config":"eQRJX","./template":"dokTM","./i18n":"1bZfm","./player":"3xuL2","./control":"4zOCk","./contextmenu":"iAXzm","./info":"bFUCG","./subtitle":"lEARb","./events":"fpHt3","./hotkey":"9z96t","./layer":"e9ahx","./loading":"hlSVU","./notice":"eDyfI","./mask":"uwUok","./icons":"1F2QO","./setting":"aqPSH","./storage":"48Pli","./plugins":"eOOz3","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aQnLI:[function(e,t,r,a){t.exports=JSON.parse('{"license":"MIT","name":"artplayer","version":"5.2.5","main":"dist/artplayer.js","legacy":"dist/artplayer.legacy.js","types":"types/artplayer.d.ts","homepage":"https://artplayer.org","author":"Harvey Zack","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"6KiDz":[function(e,t,r,a){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:#00000080;--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:#ffffff40;--art-hover-color:#ffffff40;--art-loaded-color:#ffffff40;--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:#ffffff80;--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:#000000d9;--art-tip-background:#000000b3;--art-scrollbar-size:4px;--art-scrollbar-background:#ffffff40;--art-scrollbar-background-hover:#ffffff80;--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:#0000;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:#000000bf!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;inset:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;inset:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(#0000,#0006,#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;inset:0 auto 0 0;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px #0003,0 1px 2px -1px #0003}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:#ffffff40;justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;inset:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;inset:0 0 auto}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid #ffffff1a;padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:#ffffff1a}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow:hidden auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:#ffffff1a}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:#ffffff80}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{appearance:none;background-color:#fff3;outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid #ffffff1a}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;inset:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px #00000080}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:#00000040;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;inset:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow:hidden auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:#ffffff1a}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid #0000;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px #0000004d}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],"49gY0":[function(e,t,r,a){t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===a(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(a(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function a(e){return e.constructor?e.constructor.name:null}function o(e,t){var a=2n),o.export(r,"queryAll",()=>s),o.export(r,"addClass",()=>l),o.export(r,"removeClass",()=>c),o.export(r,"hasClass",()=>p),o.export(r,"append",()=>u),o.export(r,"remove",()=>d),o.export(r,"setStyle",()=>f),o.export(r,"setStyles",()=>h),o.export(r,"getStyle",()=>m),o.export(r,"siblings",()=>g),o.export(r,"inverseClass",()=>v),o.export(r,"tooltip",()=>y),o.export(r,"isInViewport",()=>b),o.export(r,"includeFromEvent",()=>x),o.export(r,"replaceElement",()=>w),o.export(r,"createElement",()=>j),o.export(r,"getIcon",()=>k),o.export(r,"setStyleText",()=>S),o.export(r,"supportsFlex",()=>E),o.export(r,"getRect",()=>z),o.export(r,"loadImg",()=>$);var i=e("./compatibility");function n(e,t=document){return t.querySelector(e)}function s(e,t=document){return Array.from(t.querySelectorAll(e))}function l(e,t){return e.classList.add(t)}function c(e,t){return e.classList.remove(t)}function p(e,t){return e.classList.contains(t)}function u(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function d(e){return e.parentNode.removeChild(e)}function f(e,t,r){return e.style[t]=r,e}function h(e,t){for(let r in t)f(e,r,t[r]);return e}function m(e,t,r=!0){let a=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(a):a}function g(e){return Array.from(e.parentElement.children).filter(t=>t!==e)}function v(e,t){g(e).forEach(e=>c(e,t)),l(e,t)}function y(e,t,r="top"){i.isMobile||(e.setAttribute("aria-label",t),l(e,"hint--rounded"),l(e,`hint--${r}`))}function b(e,t=0){let r=e.getBoundingClientRect(),a=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-t<=a&&r.top+r.height+t>=0,n=r.left-t<=o+t&&r.left+r.width+t>=0;return i&&n}function x(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function w(e,t){return t.parentNode.replaceChild(e,t),e}function j(e){return document.createElement(e)}function k(e="",t=""){let r=j("i");return l(r,"art-icon"),l(r,`art-icon-${e}`),u(r,t),r}function S(e,t){let r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function E(){let e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function z(e){return e.getBoundingClientRect()}function $(e,t){return new Promise((r,a)=>{let o=new Image;o.onload=function(){if(t&&1!==t){let i=document.createElement("canvas"),n=i.getContext("2d");i.width=o.width*t,i.height=o.height*t,n.drawImage(o,0,0,i.width,i.height),i.toBlob(t=>{let o=URL.createObjectURL(t),i=new Image;i.onload=function(){r(i)},i.onerror=function(){URL.revokeObjectURL(o),a(Error(`Image load failed: ${e}`))},i.src=o})}else r(o)},o.onerror=function(){a(Error(`Image load failed: ${e}`))},o.src=e})}},{"./compatibility":"h19pd","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],h19pd:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"userAgent",()=>i),o.export(r,"isSafari",()=>n),o.export(r,"isWechat",()=>s),o.export(r,"isIE",()=>l),o.export(r,"isAndroid",()=>c),o.export(r,"isIOS",()=>p),o.export(r,"isIOS13",()=>u),o.export(r,"isMobile",()=>d),o.export(r,"isBrowser",()=>f);let i=globalThis?.CUSTOM_USER_AGENT??("undefined"!=typeof navigator?navigator.userAgent:""),n=/^((?!chrome|android).)*safari/i.test(i),s=/MicroMessenger/i.test(i),l=/MSIE|Trident/i.test(i),c=/android/i.test(i),p=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,u=p||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||u,f="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9OXL0":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",()=>i),o.export(r,"errorHandle",()=>n);class i extends Error{constructor(e,t){super(e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t||this.constructor),this.name="ArtPlayerError"}}function n(e,t){if(!e)throw new i(t);return e}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dSV4f:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,(e,t,r)=>{let a=r.slice(0,3);return 1===r.length&&(a=r+"00"),2===r.length&&(a=r+"0"),`${t},${a}`}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function n(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function s(e){let t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(e=""){return e.split(/[:.]/).map((e,t,r)=>{if(t===r.length-1){if(1===e.length)return`.${e}00`;if(2===e.length)return`.${e}0`}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?`.${e}`:`:${e}`}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(e=>{let a=e.match(t);return a?{start:r(a[1].trim()),end:r(a[2].trim()),text:a[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(e=>e.trim()).join("\n")}:null}).filter(e=>e).map((e,t)=>e?t+1+"\n"+`${e.start} --> ${e.end}`+"\n"+`${e.text}`:"").filter(e=>e.trim()).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",()=>i),o.export(r,"vttToBlob",()=>n),o.export(r,"assToVtt",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8Ue1J":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",()=>function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}),o.export(r,"download",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6OkQd":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",()=>i),o.export(r,"has",()=>s),o.export(r,"get",()=>l),o.export(r,"mergeDeep",()=>function e(...t){let r=e=>e&&"object"==typeof e&&!Array.isArray(e);return t.reduce((t,a)=>(Object.keys(a).forEach(o=>{let i=t[o],n=a[o];Array.isArray(i)&&Array.isArray(n)?t[o]=i.concat(...n):r(i)&&r(n)?t[o]=e(i,n):t[o]=n}),t),{})});let i=Object.defineProperty,{hasOwnProperty:n}=Object.prototype;function s(e,t){return n.call(e,t)}function l(e,t){return Object.getOwnPropertyDescriptor(e,t)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"55T7g":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e=0){return new Promise(t=>setTimeout(t,e))}function n(e,t){let r;return function(...a){clearTimeout(r),r=setTimeout(()=>(r=null,e.apply(this,a)),t)}}function s(e,t){let r=!1;return function(...a){r||(e.apply(this,a),r=!0,setTimeout(function(){r=!1},t))}}o.defineInteropFlag(r),o.export(r,"sleep",()=>i),o.export(r,"debounce",()=>n),o.export(r,"throttle",()=>s)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4YeYK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t,r){return Math.max(Math.min(e,Math.max(t,r)),Math.min(t,r))}function n(e){return e.charAt(0).toUpperCase()+e.slice(1)}function s(e){if(!e)return"00:00";let t=Math.floor(e/3600),r=Math.floor((e-3600*t)/60),a=Math.floor(e-3600*t-60*r);return(t>0?[t,r,a]:[r,a]).map(e=>e<10?`0${e}`:String(e)).join(":")}function l(e){return e.replace(/[&<>'"]/g,e=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e)}function c(e){let t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp(`(${Object.keys(t).join("|")})`,"g");return e.replace(r,e=>t[e]||e)}o.defineInteropFlag(r),o.export(r,"clamp",()=>i),o.export(r,"capitalize",()=>n),o.export(r,"secondToTime",()=>s),o.export(r,"escape",()=>l),o.export(r,"unescape",()=>c)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bEi0U:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",()=>f);var i=e("../utils");let n="array",s="boolean",l="string",c="number",p="object",u="function";function d(e,t,r){return(0,i.errorHandle)(t===l||t===c||e instanceof Element,`${r.join(".")} require '${l}' or 'Element' type`)}let f={html:d,disable:`?${s}`,name:`?${l}`,index:`?${c}`,style:`?${p}`,click:`?${u}`,mounted:`?${u}`,tooltip:`?${l}|${c}`,width:`?${c}`,selector:`?${n}`,onSelect:`?${u}`,switch:`?${s}`,onSwitch:`?${u}`,range:`?${n}`,onRange:`?${u}`,onChange:`?${u}`};r.default={id:l,container:d,url:l,poster:l,type:l,theme:l,lang:l,volume:c,isLive:s,muted:s,autoplay:s,autoSize:s,autoMini:s,loop:s,flip:s,playbackRate:s,aspectRatio:s,screenshot:s,setting:s,hotkey:s,pip:s,mutex:s,backdrop:s,fullscreen:s,fullscreenWeb:s,subtitleOffset:s,miniProgressBar:s,useSSR:s,playsInline:s,lock:s,gesture:s,fastForward:s,autoPlayback:s,autoOrientation:s,airplay:s,proxy:`?${u}`,plugins:[u],layers:[f],contextmenu:[f],settings:[f],controls:[{...f,position:(e,t,r)=>{let a=["top","left","right"];return(0,i.errorHandle)(a.includes(e),`${r.join(".")} only accept ${a.toString()} as parameters`)}}],quality:[{default:`?${s}`,html:l,url:l}],highlight:[{time:c,text:l}],thumbnails:{url:l,number:c,column:c,width:c,height:c,scale:c},subtitle:{url:l,name:l,type:l,style:p,escape:s,encoding:l,onVttLoad:u},moreVideoAttr:p,i18n:p,icons:p,cssVar:p,customType:p}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eQRJX:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default={properties:["audioTracks","autoplay","buffered","controller","controls","crossOrigin","currentSrc","currentTime","defaultMuted","defaultPlaybackRate","duration","ended","error","loop","mediaGroup","muted","networkState","paused","playbackRate","played","preload","readyState","seekable","seeking","src","startDate","textTracks","videoTracks","volume"],methods:["addTextTrack","canPlayType","load","play","pause"],events:["abort","canplay","canplaythrough","durationchange","emptied","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],prototypes:["width","height","videoWidth","videoHeight","poster","webkitDecodedFrameCount","webkitDroppedFrameCount","playsInline","webkitSupportsFullscreen","webkitDisplayingFullscreen","onenterpictureinpicture","onleavepictureinpicture","disablePictureInPicture","cancelVideoFrameCallback","requestVideoFrameCallback","getVideoPlaybackQuality","requestPictureInPicture","webkitEnterFullScreen","webkitEnterFullscreen","webkitExitFullScreen","webkitExitFullscreen"]}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dokTM:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("../package.json"),i=e("./utils");class n{constructor(e){this.art=e;let{option:t,constructor:r}=e;t.container instanceof Element?this.$container=t.container:(this.$container=(0,i.query)(t.container),(0,i.errorHandle)(this.$container,`No container element found by ${t.container}`)),(0,i.errorHandle)((0,i.supportsFlex)(),"The current browser does not support flex layout");let a=this.$container.tagName.toLowerCase();(0,i.errorHandle)("div"===a,`Unsupported container element type, only support 'div' but got '${a}'`),(0,i.errorHandle)(r.instances.every(e=>e.template.$container!==this.$container),"Cannot mount multiple instances on the same dom element"),this.query=this.query.bind(this),this.$container.dataset.artId=e.id,this.init()}static get html(){return`
Player version:
${o.version}
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
`}query(e){return(0,i.query)(e,this.$container)}init(){let{option:e}=this.art;if(e.useSSR||(this.$container.innerHTML=n.html),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$track=this.query("track"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$controlsCenter=this.query(".art-controls-center"),this.$controlsRight=this.query(".art-controls-right"),this.$layer=this.query(".art-layers"),this.$loading=this.query(".art-loading"),this.$notice=this.query(".art-notice"),this.$noticeInner=this.query(".art-notice-inner"),this.$mask=this.query(".art-mask"),this.$state=this.query(".art-state"),this.$setting=this.query(".art-settings"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$contextmenu=this.query(".art-contextmenus"),e.proxy){let t=e.proxy.call(this.art,this.art);(0,i.errorHandle)(t instanceof HTMLVideoElement||t instanceof HTMLCanvasElement,"Function 'option.proxy' needs to return 'HTMLVideoElement' or 'HTMLCanvasElement'"),(0,i.replaceElement)(t,this.$video),t.className="art-video",this.$video=t}e.backdrop&&(0,i.addClass)(this.$player,"art-backdrop"),i.isMobile&&(0,i.addClass)(this.$player,"art-mobile")}destroy(e){this.$video.src="",e?this.$container.innerHTML="":(0,i.addClass)(this.$player,"art-destroy")}}r.default=n},{"../package.json":"aQnLI","./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1bZfm":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./zh-cn"),s=o.interopDefault(n);r.default=class{constructor(e){this.art=e,this.languages={"zh-cn":s.default},this.language={},this.update(e.option.i18n)}init(){let e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}get(e){return this.language[e]||e}update(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}},{"../utils":"gpvEP","./zh-cn":"kRuwK","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kRuwK:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3xuL2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./urlMix"),n=o.interopDefault(i),s=e("./attrMix"),l=o.interopDefault(s),c=e("./playMix"),p=o.interopDefault(c),u=e("./pauseMix"),d=o.interopDefault(u),f=e("./toggleMix"),h=o.interopDefault(f),m=e("./seekMix"),g=o.interopDefault(m),v=e("./volumeMix"),y=o.interopDefault(v),b=e("./currentTimeMix"),x=o.interopDefault(b),w=e("./durationMix"),j=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),E=e("./playbackRateMix"),z=o.interopDefault(E),$=e("./aspectRatioMix"),I=o.interopDefault($),T=e("./screenshotMix"),M=o.interopDefault(T),F=e("./fullscreenMix"),P=o.interopDefault(F),C=e("./fullscreenWebMix"),D=o.interopDefault(C),A=e("./pipMix"),R=o.interopDefault(A),L=e("./loadedMix"),O=o.interopDefault(L),q=e("./playedMix"),_=o.interopDefault(q),H=e("./playingMix"),V=o.interopDefault(H),N=e("./autoSizeMix"),B=o.interopDefault(N),U=e("./rectMix"),Y=o.interopDefault(U),W=e("./flipMix"),K=o.interopDefault(W),Q=e("./miniMix"),X=o.interopDefault(Q),Z=e("./posterMix"),G=o.interopDefault(Z),J=e("./autoHeightMix"),ee=o.interopDefault(J),et=e("./cssVarMix"),er=o.interopDefault(et),ea=e("./themeMix"),eo=o.interopDefault(ea),ei=e("./typeMix"),en=o.interopDefault(ei),es=e("./stateMix"),el=o.interopDefault(es),ec=e("./subtitleOffsetMix"),ep=o.interopDefault(ec),eu=e("./airplayMix"),ed=o.interopDefault(eu),ef=e("./qualityMix"),eh=o.interopDefault(ef),em=e("./thumbnailsMix"),eg=o.interopDefault(em),ev=e("./optionInit"),ey=o.interopDefault(ev),eb=e("./eventInit"),ex=o.interopDefault(eb);r.default=class{constructor(e){(0,n.default)(e),(0,l.default)(e),(0,p.default)(e),(0,d.default)(e),(0,h.default)(e),(0,g.default)(e),(0,y.default)(e),(0,x.default)(e),(0,j.default)(e),(0,S.default)(e),(0,z.default)(e),(0,I.default)(e),(0,M.default)(e),(0,P.default)(e),(0,D.default)(e),(0,R.default)(e),(0,O.default)(e),(0,_.default)(e),(0,V.default)(e),(0,B.default)(e),(0,Y.default)(e),(0,K.default)(e),(0,X.default)(e),(0,G.default)(e),(0,ee.default)(e),(0,er.default)(e),(0,eo.default)(e),(0,en.default)(e),(0,el.default)(e),(0,ep.default)(e),(0,ed.default)(e),(0,eh.default)(e),(0,eg.default)(e),(0,ex.default)(e),(0,ey.default)(e)}}},{"./urlMix":"hXrQD","./attrMix":"6pNgq","./playMix":"krR40","./pauseMix":"eFrQn","./toggleMix":"5mk0x","./seekMix":"kNVxo","./volumeMix":"j0CPw","./currentTimeMix":"3Qlk2","./durationMix":"ej83c","./switchMix":"4DKMC","./playbackRateMix":"3q2BJ","./aspectRatioMix":"kKNdy","./screenshotMix":"jEOGf","./fullscreenMix":"6fcMx","./fullscreenWebMix":"2fgOZ","./pipMix":"7ctTv","./loadedMix":"748cK","./playedMix":"2v3kJ","./playingMix":"7NTUH","./autoSizeMix":"lVqio","./rectMix":"i0rvQ","./flipMix":"f8acK","./miniMix":"htzAz","./posterMix":"iIy8c","./autoHeightMix":"4JyZb","./cssVarMix":"9iyPY","./themeMix":"7NNfU","./typeMix":"ipJQa","./stateMix":"6P1Bw","./subtitleOffsetMix":"eqBmH","./airplayMix":"etKzV","./qualityMix":"1CuDr","./thumbnailsMix":"63zKA","./optionInit":"cIuaY","./eventInit":"lqh1e","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],hXrQD:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,template:{$video:r}}=e;(0,i.def)(e,"url",{get:()=>r.src,async set(a){if(a){let o=e.url,n=t.type||(0,i.getExt)(a),s=t.customType[n];n&&s?(await (0,i.sleep)(),e.loading.show=!0,s.call(e,r,a,e)):(URL.revokeObjectURL(o),r.src=a),o!==e.url&&(e.option.url=a,e.isReady&&o&&e.once("video:canplay",()=>{e.emit("restart",a)}))}else await (0,i.sleep)(),e.loading.show=!0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6pNgq":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t}}=e;(0,i.def)(e,"attr",{value(e,r){if(void 0===r)return t[e];t[e]=r}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],krR40:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,option:a,constructor:{instances:o},template:{$video:n}}=e;(0,i.def)(e,"play",{value:async function(){let i=await n.play();if(r.show=t.get("Play"),e.emit("play"),a.mutex)for(let t=0;tn);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"pause",{value(){let o=t.pause();return a.show=r.get("Pause"),e.emit("pause"),o}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5mk0x":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"toggle",{value:()=>e.playing?e.pause():e.play()})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kNVxo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t}=e;(0,i.def)(e,"seek",{set(r){e.currentTime=r,e.duration&&(t.show=`${(0,i.secondToTime)(e.currentTime)} / ${(0,i.secondToTime)(e.duration)}`),e.emit("seek",e.currentTime)}}),(0,i.def)(e,"forward",{set(t){e.seek=e.currentTime+t}}),(0,i.def)(e,"backward",{set(t){e.seek=e.currentTime-t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j0CPw:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a,storage:o}=e;(0,i.def)(e,"volume",{get:()=>t.volume||0,set:e=>{t.volume=(0,i.clamp)(e,0,1),a.show=`${r.get("Volume")}: ${parseInt(100*t.volume,10)}`,0!==t.volume&&o.set("volume",t.volume)}}),(0,i.def)(e,"muted",{get:()=>t.muted,set:r=>{t.muted=r,e.emit("muted",r)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3Qlk2":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"currentTime",{get:()=>t.currentTime||0,set:r=>{Number.isNaN(r=parseFloat(r))||(t.currentTime=(0,i.clamp)(r,0,e.duration))}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ej83c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"duration",{get:()=>{let{duration:t}=e.template.$video;return t===1/0?0:t||0}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4DKMC":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){function t(t,r){return new Promise((a,o)=>{if(t===e.url)return;let{playing:i,aspectRatio:n,playbackRate:s}=e;e.pause(),e.url=t,e.notice.show="",e.once("video:error",o),e.once("video:loadedmetadata",()=>{e.currentTime=r}),e.once("video:canplay",async()=>{e.playbackRate=s,e.aspectRatio=n,i&&await e.play(),e.notice.show="",a()})})}(0,i.def)(e,"switchQuality",{value:r=>t(r,e.currentTime)}),(0,i.def)(e,"switchUrl",{value:e=>t(e,0)}),(0,i.def)(e,"switch",{set:e.switchUrl})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3q2BJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$video:t},i18n:r,notice:a}=e;(0,i.def)(e,"playbackRate",{get:()=>t.playbackRate,set(o){o?o!==t.playbackRate&&(t.playbackRate=o,a.show=`${r.get("Rate")}: ${1===o?r.get("Normal"):`${o}x`}`):e.playbackRate=1}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kKNdy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e;(0,i.def)(e,"aspectRatio",{get:()=>o.dataset.aspectRatio||"default",set(n){if(n||(n="default"),"default"===n)(0,i.setStyle)(a,"width",null),(0,i.setStyle)(a,"height",null),(0,i.setStyle)(a,"margin",null),delete o.dataset.aspectRatio;else{let e=n.split(":").map(Number),{clientWidth:t,clientHeight:r}=o,s=e[0]/e[1];t/r>s?((0,i.setStyle)(a,"width",`${s*r}px`),(0,i.setStyle)(a,"height","100%"),(0,i.setStyle)(a,"margin","0 auto")):((0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height",`${t/s}px`),(0,i.setStyle)(a,"margin","auto 0")),o.dataset.aspectRatio=n}r.show=`${t.get("Aspect Ratio")}: ${"default"===n?t.get("Default"):n}`,e.emit("aspectRatio",n)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],jEOGf:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{notice:t,template:{$video:r}}=e,a=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),e(a.toDataURL("image/png"))}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"getBlobUrl",{value:()=>new Promise((e,o)=>{try{a.width=r.videoWidth,a.height=r.videoHeight,a.getContext("2d").drawImage(r,0,0),a.toBlob(t=>{e(URL.createObjectURL(t))})}catch(e){t.show=e,o(e)}})}),(0,i.def)(e,"screenshot",{value:async t=>{let a=await e.getDataURL(),o=t||`artplayer_${(0,i.secondToTime)(r.currentTime)}`;return(0,i.download)(a,`${o}.png`),e.emit("screenshot",a),a}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6fcMx":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../libs/screenfull"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,template:{$video:a,$player:o}}=e,i=e=>{n.default.on("change",()=>{e.emit("fullscreen",n.default.isFullscreen),n.default.isFullscreen?(e.state="fullscreen",(0,s.addClass)(o,"art-fullscreen")):(0,s.removeClass)(o,"art-fullscreen"),e.emit("resize")}),n.default.on("error",t=>{e.emit("fullscreenError",t)}),(0,s.def)(e,"fullscreen",{get:()=>n.default.isFullscreen,async set(e){e?await n.default.request(o):await n.default.exit()}})},l=e=>{e.proxy(document,"webkitfullscreenchange",()=>{e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,s.def)(e,"fullscreen",{get:()=>document.fullscreenElement===a,set(t){t?(e.state="fullscreen",a.webkitEnterFullscreen()):a.webkitExitFullscreen()}})};e.once("video:loadedmetadata",()=>{n.default.isEnabled?i(e):a.webkitSupportsFullscreen?l(e):(0,s.def)(e,"fullscreen",{get:()=>!1,set(){r.show=t.get("Fullscreen Not Supported")}}),(0,s.def)(e,"fullscreen",(0,s.get)(e,"fullscreen"))})}},{"../libs/screenfull":"kQNoU","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kQNoU:[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);let o=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=(()=>{if("undefined"==typeof document)return!1;let e=o[0],t={};for(let r of o)if(r[1]in document){for(let[a,o]of r.entries())t[e[a]]=o;return t}return!1})(),n={change:i.fullscreenchange,error:i.fullscreenerror},s={request:(e=document.documentElement,t)=>new Promise((r,a)=>{let o=()=>{s.off("change",o),r()};s.on("change",o);let n=e[i.requestFullscreen](t);n instanceof Promise&&n.then(o).catch(a)}),exit:()=>new Promise((e,t)=>{if(!s.isFullscreen)return void e();let r=()=>{s.off("change",r),e()};s.on("change",r);let a=document[i.exitFullscreen]();a instanceof Promise&&a.then(r).catch(t)}),toggle:(e,t)=>s.isFullscreen?s.exit():s.request(e,t),onchange(e){s.on("change",e)},onerror(e){s.on("error",e)},on(e,t){let r=n[e];r&&document.addEventListener(r,t,!1)},off(e,t){let r=n[e];r&&document.removeEventListener(r,t,!1)},raw:i};Object.defineProperties(s,{isFullscreen:{get:()=>!!document[i.fullscreenElement]},element:{enumerable:!0,get:()=>document[i.fullscreenElement]},isEnabled:{enumerable:!0,get:()=>!!document[i.fullscreenEnabled]}}),i||(s={isEnabled:!1}),r.default=s},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2fgOZ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$container:r,$player:a}}=e,o="";(0,i.def)(e,"fullscreenWeb",{get:()=>(0,i.hasClass)(a,"art-fullscreen-web"),set(n){n?(o=a.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(document.body,a),e.state="fullscreenWeb",(0,i.setStyle)(a,"width","100%"),(0,i.setStyle)(a,"height","100%"),(0,i.addClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,i.append)(r,a),o&&(a.style.cssText=o,o=""),(0,i.removeClass)(a,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7ctTv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,notice:r,template:{$video:a}}=e;if(document.pictureInPictureEnabled){let{template:{$video:t},proxy:r,notice:a}=e;t.disablePictureInPicture=!1,(0,i.def)(e,"pip",{get:()=>document.pictureInPictureElement,set(r){r?(e.state="pip",t.requestPictureInPicture().catch(e=>{throw a.show=e,e})):document.exitPictureInPicture().catch(e=>{throw a.show=e,e})}}),r(t,"enterpictureinpicture",()=>{e.emit("pip",!0)}),r(t,"leavepictureinpicture",()=>{e.emit("pip",!1)})}else if(a.webkitSupportsPresentationMode){let{$video:t}=e.template;t.webkitSetPresentationMode("inline"),(0,i.def)(e,"pip",{get:()=>"picture-in-picture"===t.webkitPresentationMode,set(r){r?(e.state="pip",t.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(t.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})}else(0,i.def)(e,"pip",{get:()=>!1,set(){r.show=t.get("PIP Not Supported")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"748cK":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"loaded",{get:()=>e.loadedTime/t.duration}),(0,i.def)(e,"loadedTime",{get:()=>t.buffered.length?t.buffered.end(t.buffered.length-1):0})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2v3kJ":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"played",{get:()=>e.currentTime/e.duration})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NTUH":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$video:t}=e.template;(0,i.def)(e,"playing",{get:()=>"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lVqio:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$container:t,$player:r,$video:a}=e.template;(0,i.def)(e,"autoSize",{value(){let{videoWidth:o,videoHeight:n}=a,{width:s,height:l}=(0,i.getRect)(t),c=o/n;s/l>c?((0,i.setStyle)(r,"width",`${l*c/s*100}%`),(0,i.setStyle)(r,"height","100%")):((0,i.setStyle)(r,"width","100%"),(0,i.setStyle)(r,"height",`${s/c/l*100}%`)),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],i0rvQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"rect",{get:()=>(0,i.getRect)(e.template.$player)});let t=["bottom","height","left","right","top","width"];for(let r=0;re.rect[a]})}(0,i.def)(e,"x",{get:()=>e.left+window.pageXOffset}),(0,i.def)(e,"y",{get:()=>e.top+window.pageYOffset})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],f8acK:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$player:t},i18n:r,notice:a}=e;(0,i.def)(e,"flip",{get:()=>t.dataset.flip||"normal",set(o){o||(o="normal"),"normal"===o?delete t.dataset.flip:t.dataset.flip=o,a.show=`${r.get("Video Flip")}: ${r.get((0,i.capitalize)(o))}`,e.emit("flip",o)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],htzAz:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{icons:t,proxy:r,storage:a,template:{$player:o,$video:n}}=e,s=!1,l=0,c=0;function p(){let{$mini:t}=e.template;t&&((0,i.removeClass)(o,"art-mini"),(0,i.setStyle)(t,"display","none"),o.prepend(n),e.emit("mini",!1))}function u(t,r){e.playing?((0,i.setStyle)(t,"display","none"),(0,i.setStyle)(r,"display","flex")):((0,i.setStyle)(t,"display","flex"),(0,i.setStyle)(r,"display","none"))}function d(){let{$mini:t}=e.template,r=(0,i.getRect)(t),o=window.innerHeight-r.height-50,n=window.innerWidth-r.width-50;a.set("top",o),a.set("left",n),(0,i.setStyle)(t,"top",`${o}px`),(0,i.setStyle)(t,"left",`${n}px`)}(0,i.def)(e,"mini",{get:()=>(0,i.hasClass)(o,"art-mini"),set(f){if(f){e.state="mini",(0,i.addClass)(o,"art-mini");let f=function(){let{$mini:o}=e.template;if(o)return(0,i.append)(o,n),(0,i.setStyle)(o,"display","flex");{let o=(0,i.createElement)("div");(0,i.addClass)(o,"art-mini-popup"),(0,i.append)(document.body,o),e.template.$mini=o,(0,i.append)(o,n);let d=(0,i.append)(o,'
');(0,i.append)(d,t.close),r(d,"click",p);let f=(0,i.append)(o,'
'),h=(0,i.append)(f,t.play),m=(0,i.append)(f,t.pause);return r(h,"click",()=>e.play()),r(m,"click",()=>e.pause()),u(h,m),e.on("video:playing",()=>u(h,m)),e.on("video:pause",()=>u(h,m)),e.on("video:timeupdate",()=>u(h,m)),r(o,"mousedown",e=>{s=0===e.button,l=e.pageX,c=e.pageY}),e.on("document:mousemove",e=>{if(s){(0,i.addClass)(o,"art-mini-dragging");let t=e.pageX-l,r=e.pageY-c;(0,i.setStyle)(o,"transform",`translate(${t}px, ${r}px)`)}}),e.on("document:mouseup",()=>{if(s){s=!1,(0,i.removeClass)(o,"art-mini-dragging");let e=(0,i.getRect)(o);a.set("left",e.left),a.set("top",e.top),(0,i.setStyle)(o,"left",`${e.left}px`),(0,i.setStyle)(o,"top",`${e.top}px`),(0,i.setStyle)(o,"transform",null)}}),o}}(),h=a.get("top"),m=a.get("left");"number"==typeof h&&"number"==typeof m?((0,i.setStyle)(f,"top",`${h}px`),(0,i.setStyle)(f,"left",`${m}px`),(0,i.isInViewport)(f)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iIy8c:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$poster:t}}=e;(0,i.def)(e,"poster",{get:()=>{try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set(e){(0,i.setStyle)(t,"backgroundImage",`url(${e})`)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4JyZb":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{template:{$container:t,$video:r}}=e;(0,i.def)(e,"autoHeight",{value(){let{clientWidth:a}=t,{videoHeight:o,videoWidth:n}=r,s=a/n*o;(0,i.setStyle)(t,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9iyPY":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{$player:t}=e.template;(0,i.def)(e,"cssVar",{value:(e,r)=>r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"7NNfU":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"theme",{get:()=>e.cssVar("--art-theme"),set(t){e.cssVar("--art-theme",t)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ipJQa:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"type",{get:()=>e.option.type,set(t){e.option.type=t}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6P1Bw":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let t=["mini","pip","fullscreen","fullscreenWeb"];(0,i.def)(e,"state",{get:()=>t.find(t=>e[t])||"standard",set(r){for(let a=0;an);var i=e("../utils");function n(e){let{notice:t,i18n:r,template:a}=e;(0,i.def)(e,"subtitleOffset",{get:()=>a.$track?.offset||0,set(o){let{cues:n}=e.subtitle;if(!a.$track||0===n.length)return;let s=(0,i.clamp)(o,-10,10);a.$track.offset=s;for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,notice:r,proxy:a,template:{$video:o}}=e,n=!0;window.WebKitPlaybackTargetAvailabilityEvent&&o.webkitShowPlaybackTargetPicker?a(o,"webkitplaybacktargetavailabilitychanged",e=>{switch(e.availability){case"available":n=!0;break;case"not-available":n=!1}}):n=!1,(0,i.def)(e,"airplay",{value(){n?(o.webkitShowPlaybackTargetPicker(),e.emit("airplay")):r.show=t.get("AirPlay Not Available")}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1CuDr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){(0,i.def)(e,"quality",{set(t){let{controls:r,notice:a,i18n:o}=e,i=t.find(e=>e.default)||t[0];r.update({name:"quality",position:"right",index:10,style:{marginRight:"10px"},html:i?.html||"",selector:t,onSelect:async t=>(await e.switchQuality(t.url),a.show=`${o.get("Switch Video")}: ${t.html}`,t.html)})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"63zKA":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{events:t,option:r,template:{$progress:a,$video:o}}=e,n=null,s=null,l=!1,c=!1,p=!1;t.hover(a,()=>{p=!0},()=>{p=!1}),e.on("setBar",async(t,u,d)=>{let f=e.controls?.thumbnails,{url:h,scale:m}=r.thumbnails;if(!f||!h)return;let g="played"===t&&d&&i.isMobile;if("hover"===t||g){if(l||(l=!0,s=await (0,i.loadImg)(h,m),c=!0),!c||!p)return;let t=a.clientWidth*u;(0,i.setStyle)(f,"display","flex"),t>0&&ta.clientWidth-f/2?(0,i.setStyle)(n,"left",`${a.clientWidth-f}px`):(0,i.setStyle)(n,"left",`${t-f/2}px`)}(t):i.isMobile||(0,i.setStyle)(f,"display","none"),g&&(clearTimeout(n),n=setTimeout(()=>{(0,i.setStyle)(f,"display","none")},500))}}),(0,i.def)(e,"thumbnails",{get:()=>e.option.thumbnails,set(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(n),n=null,s=null,l=!1,c=!1)}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cIuaY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{option:t,storage:r,template:{$video:a,$poster:o}}=e;for(let r in t.moreVideoAttr)e.attr(r,t.moreVideoAttr[r]);t.muted&&(e.muted=t.muted),t.volume&&(a.volume=(0,i.clamp)(t.volume,0,1));let n=r.get("volume");for(let r in"number"==typeof n&&(a.volume=(0,i.clamp)(n,0,1)),t.poster&&(0,i.setStyle)(o,"backgroundImage",`url(${t.poster})`),t.autoplay&&(a.autoplay=t.autoplay),t.playsInline&&(a.playsInline=!0,a["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(r,t.cssVar[r]);e.url=t.url}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lqh1e:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var i=e("../config"),n=o.interopDefault(i),s=e("../utils");function l(e){let{i18n:t,notice:r,option:a,constructor:o,proxy:i,template:{$player:l,$video:c,$poster:p}}=e,u=0;for(let t=0;t{e.emit(`video:${t.type}`,t)});e.on("video:canplay",()=>{u=0,e.loading.show=!1}),e.once("video:canplay",()=>{e.loading.show=!1,e.controls.show=!0,e.mask.show=!0,e.isReady=!0,e.emit("ready")}),e.on("video:ended",()=>{a.loop?(e.seek=0,e.play(),e.controls.show=!1,e.mask.show=!1):(e.controls.show=!0,e.mask.show=!0)}),e.on("video:error",async i=>{u{e.emit("resize"),s.isMobile&&(e.loading.show=!1,e.controls.show=!0,e.mask.show=!0)}),e.on("video:loadstart",()=>{e.loading.show=!0,e.mask.show=!1,e.controls.show=!0}),e.on("video:pause",()=>{e.controls.show=!0,e.mask.show=!0}),e.on("video:play",()=>{e.mask.show=!1,(0,s.setStyle)(p,"display","none")}),e.on("video:playing",()=>{e.mask.show=!1}),e.on("video:progress",()=>{e.playing&&(e.loading.show=!1)}),e.on("video:seeked",()=>{e.loading.show=!1,e.mask.show=!0}),e.on("video:seeking",()=>{e.loading.show=!0,e.mask.show=!1}),e.on("video:timeupdate",()=>{e.mask.show=!1}),e.on("video:waiting",()=>{e.loading.show=!0,e.mask.show=!1})}},{"../config":"eQRJX","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4zOCk":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils/component"),n=o.interopDefault(i),s=e("./fullscreen"),l=o.interopDefault(s),c=e("./fullscreenWeb"),p=o.interopDefault(c),u=e("./pip"),d=o.interopDefault(u),f=e("./playAndPause"),h=o.interopDefault(f),m=e("./progress"),g=o.interopDefault(m),v=e("./time"),y=o.interopDefault(v),b=e("./volume"),x=o.interopDefault(b),w=e("./setting"),j=o.interopDefault(w),k=e("./screenshot"),S=o.interopDefault(k),E=e("./airplay"),z=o.interopDefault(E),$=e("../utils");class I extends n.default{constructor(e){super(e),this.isHover=!1,this.name="control",this.timer=Date.now();let{constructor:t}=e,{$player:r,$bottom:a}=this.art.template;e.on("mousemove",()=>{$.isMobile||(this.show=!0)}),e.on("click",()=>{$.isMobile?this.toggle():this.show=!0}),e.on("document:mousemove",e=>{this.isHover=(0,$.includeFromEvent)(e,a)}),e.on("video:timeupdate",()=>{!e.setting.show&&!this.isHover&&!e.isInput&&e.playing&&this.show&&Date.now()-this.timer>=t.CONTROL_HIDE_TIME&&(this.show=!1)}),e.on("control",e=>{e?((0,$.removeClass)(r,"art-hide-cursor"),(0,$.addClass)(r,"art-hover"),this.timer=Date.now()):((0,$.addClass)(r,"art-hide-cursor"),(0,$.removeClass)(r,"art-hover"))}),this.init()}init(){let{option:e}=this.art;e.isLive||this.add((0,g.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,h.default)({name:"playAndPause",position:"left",index:10})),this.add((0,x.default)({name:"volume",position:"left",index:20})),e.isLive||this.add((0,y.default)({name:"time",position:"left",index:30})),e.quality.length&&(0,$.sleep)().then(()=>{this.art.quality=e.quality}),e.screenshot&&!$.isMobile&&this.add((0,S.default)({name:"screenshot",position:"right",index:20})),e.setting&&this.add((0,j.default)({name:"setting",position:"right",index:30})),e.pip&&this.add((0,d.default)({name:"pip",position:"right",index:40})),e.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,z.default)({name:"airplay",position:"right",index:50})),e.fullscreenWeb&&this.add((0,p.default)({name:"fullscreenWeb",position:"right",index:60})),e.fullscreen&&this.add((0,l.default)({name:"fullscreen",position:"right",index:70}));for(let t=0;te.selector}),(0,$.def)(r,"$control_item",{get:()=>a}),(0,$.def)(r,"$control_value",{get:()=>o})}let n=a(i,"click",async t=>{let r=t.composedPath()||[],a=e.selector.find(e=>e.$control_item===r.find(t=>e.$control_item===t));this.check(a),e.onSelect&&(o.innerHTML=await e.onSelect.call(this.art,a,a.$control_item,t))});r.push(n)}}r.default=I},{"../utils/component":"j4qZZ","./fullscreen":"7juzt","./fullscreenWeb":"dukaq","./pip":"lt0U6","./playAndPause":"eyIIx","./progress":"2S7vj","./time":"bgLbI","./volume":"lA6hu","./setting":"cH3Og","./screenshot":"gGGQI","./airplay":"4TMBv","../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],j4qZZ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./dom"),n=e("./error"),s=e("option-validator"),l=o.interopDefault(s),c=e("../scheme");r.default=class{constructor(e){this.id=0,this.art=e,this.cache=new Map,this.add=this.add.bind(this),this.remove=this.remove.bind(this),this.update=this.update.bind(this)}get show(){return(0,i.hasClass)(this.art.template.$player,`art-${this.name}-show`)}set show(e){let{$player:t}=this.art.template,r=`art-${this.name}-show`;e?(0,i.addClass)(t,r):(0,i.removeClass)(t,r),this.art.emit(this.name,e)}toggle(){this.show=!this.show}add(e){let t="function"==typeof e?e(this.art):e;if(t.html=t.html||"",(0,l.default)(t,c.ComponentOption),!this.$parent||!this.name||t.disable)return;let r=t.name||`${this.name}${this.id}`,a=this.cache.get(r);(0,n.errorHandle)(!a,`Can't add an existing [${r}] to the [${this.name}]`),this.id+=1;let o=(0,i.createElement)("div");(0,i.addClass)(o,`art-${this.name}`),(0,i.addClass)(o,`art-${this.name}-${r}`);let s=Array.from(this.$parent.children);o.dataset.index=t.index||this.id;let p=s.find(e=>Number(e.dataset.index)>=Number(o.dataset.index));p?p.insertAdjacentElement("beforebegin",o):(0,i.append)(this.$parent,o),t.html&&(0,i.append)(o,t.html),t.style&&(0,i.setStyles)(o,t.style),t.tooltip&&(0,i.tooltip)(o,t.tooltip);let u=[];if(t.click){let e=this.art.events.proxy(o,"click",e=>{e.preventDefault(),t.click.call(this.art,this,e)});u.push(e)}return t.selector&&["left","right"].includes(t.position)&&this.selector(t,o,u),this[r]=o,this.cache.set(r,{$ref:o,events:u,option:t}),t.mounted&&t.mounted.call(this.art,o),o}remove(e){let t=this.cache.get(e);(0,n.errorHandle)(t,`Can't find [${e}] from the [${this.name}]`),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenOn),s=(0,i.append)(e,a.fullscreenOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreen=!t.fullscreen}),t.on("fullscreen",t=>{t?((0,i.tooltip)(e,o.get("Exit Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],dukaq:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Web Fullscreen"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.fullscreenWebOn),s=(0,i.append)(e,a.fullscreenWebOff);(0,i.setStyle)(s,"display","none"),r(e,"click",()=>{t.fullscreenWeb=!t.fullscreenWeb}),t.on("fullscreenWeb",t=>{t?((0,i.tooltip)(e,o.get("Exit Web Fullscreen")),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","inline-flex")):((0,i.tooltip)(e,o.get("Web Fullscreen")),(0,i.setStyle)(n,"display","inline-flex"),(0,i.setStyle)(s,"display","none"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],lt0U6:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("PIP Mode"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.pip),r(e,"click",()=>{t.pip=!t.pip}),t.on("pip",t=>{(0,i.tooltip)(e,o.get(t?"Exit PIP Mode":"PIP Mode"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eyIIx:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a,i18n:o}=t,n=(0,i.append)(e,a.play),s=(0,i.append)(e,a.pause);function l(){(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(s,"display","none")}function c(){(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(s,"display","flex")}(0,i.tooltip)(n,o.get("Play")),(0,i.tooltip)(s,o.get("Pause")),r(n,"click",()=>{t.play()}),r(s,"click",()=>{t.pause()}),t.playing?c():l(),t.on("video:playing",()=>{c()}),t.on("video:pause",()=>{l()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"2S7vj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"getPosFromEvent",()=>n),o.export(r,"setCurrentTime",()=>s),o.export(r,"default",()=>l);var i=e("../utils");function n(e,t){let{$progress:r}=e.template,{left:a}=(0,i.getRect)(r),o=i.isMobile?t.touches[0].clientX:t.clientX,n=(0,i.clamp)(o-a,0,r.clientWidth),s=n/r.clientWidth*e.duration,l=(0,i.secondToTime)(s),c=(0,i.clamp)(n/r.clientWidth,0,1);return{second:s,time:l,width:n,percentage:c}}function s(e,t){if(e.isRotate){let r=t.touches[0].clientY/e.height,a=r*e.duration;e.emit("setBar","played",r,t),e.seek=a}else{let{second:r,percentage:a}=n(e,t);e.emit("setBar","played",a,t),e.seek=r}}function l(e){return t=>{let{icons:r,option:a,proxy:o}=t;return{...e,html:`
`,mounted:e=>{let l=null,c=!1,p=(0,i.query)(".art-progress-hover",e),u=(0,i.query)(".art-progress-loaded",e),d=(0,i.query)(".art-progress-played",e),f=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function g(r,a){let{width:o,time:s}=a||n(t,r);m.innerText=s;let l=m.clientWidth;o<=l/2?(0,i.setStyle)(m,"left",0):o>e.clientWidth-l/2?(0,i.setStyle)(m,"left",`${e.clientWidth-l}px`):(0,i.setStyle)(m,"left",`${o-l/2}px`)}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,a,o){let n="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(u,"width",`${100*a}%`),"hover"===r&&(0,i.setStyle)(p,"width",`${100*a}%`),"played"===r&&((0,i.setStyle)(d,"width",`${100*a}%`),(0,i.setStyle)(h,"left",`${100*a}%`)),n&&((0,i.setStyle)(m,"display","flex"),g(o,{width:e.clientWidth*a,time:(0,i.secondToTime)(a*t.duration)}),clearTimeout(l),l=setTimeout(()=>{(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){f.innerText="";for(let e=0;e`;(0,i.append)(f,n)}}),t.constructor.USE_RAF?t.on("raf",()=>{t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",()=>{t.emit("setBar","played",t.played)}),t.on("video:progress",()=>{t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",()=>{t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",e=>{e.target!==h&&s(t,e)}),o(e,"mousemove",r=>{let{percentage:a}=n(t,r);if(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,f)){let{width:a}=n(t,r),{text:o}=r.target.dataset;m.innerText=o;let s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left",`${e.clientWidth-s}px`):(0,i.setStyle)(m,"left",`${a-s/2}px`)}else g(r)}),o(e,"mouseleave",e=>{(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",e=>{c=0===e.button}),t.on("document:mousemove",e=>{if(c){let{second:r,percentage:a}=n(t,e);t.emit("setBar","played",a,e),t.seek=r}}),t.on("document:mouseup",()=>{c&&(c=!1)}))}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bgLbI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:e=>{function r(){let r=`${(0,i.secondToTime)(t.currentTime)} / ${(0,i.secondToTime)(t.duration)}`;r!==e.innerText&&(e.innerText=r)}r();let a=["video:loadedmetadata","video:timeupdate","video:progress"];for(let e=0;en);var i=e("../utils");function n(e){return t=>({...e,mounted:e=>{let{proxy:r,icons:a}=t,o=(0,i.append)(e,a.volume),n=(0,i.append)(e,a.volumeClose),s=(0,i.append)(e,'
'),l=(0,i.append)(s,'
'),c=(0,i.append)(l,'
'),p=(0,i.append)(l,'
'),u=(0,i.append)(p,'
'),d=(0,i.append)(u,'
'),f=(0,i.append)(p,'
');function h(e){let{top:t,height:r}=(0,i.getRect)(p);return 1-(e.clientY-t)/r}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display","flex"),(0,i.setStyle)(f,"top","100%"),(0,i.setStyle)(d,"top","100%"),c.innerText=0;else{let e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(n,"display","none"),(0,i.setStyle)(f,"top",`${100-e}%`),(0,i.setStyle)(d,"top",`${100-e}%`),c.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",()=>{t.muted=!0}),r(n,"click",()=>{t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{let e=!1;r(p,"mousedown",r=>{e=0===r.button,t.volume=h(r)}),t.on("document:mousemove",r=>{e&&(t.muted=!1,t.volume=h(r))}),t.on("document:mouseup",()=>{e&&(e=!1)})}}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cH3Og:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Show Setting"),mounted:e=>{let{proxy:r,icons:a,i18n:o}=t;(0,i.append)(e,a.setting),r(e,"click",()=>{t.setting.toggle(),t.setting.resize()}),t.on("setting",t=>{(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],gGGQI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("Screenshot"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.screenshot),r(e,"click",()=>{t.screenshot()})}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4TMBv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>({...e,tooltip:t.i18n.get("AirPlay"),mounted:e=>{let{proxy:r,icons:a}=t;(0,i.append)(e,a.airplay),r(e,"click",()=>t.airplay())}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],iAXzm:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("../utils/component"),s=o.interopDefault(n),l=e("./playbackRate"),c=o.interopDefault(l),p=e("./aspectRatio"),u=o.interopDefault(p),d=e("./flip"),f=o.interopDefault(d),h=e("./info"),m=o.interopDefault(h),g=e("./version"),v=o.interopDefault(g),y=e("./close"),b=o.interopDefault(y);class x extends s.default{constructor(e){super(e),this.name="contextmenu",this.$parent=e.template.$contextmenu,i.isMobile||this.init()}init(){let{option:e,proxy:t,template:{$player:r,$contextmenu:a}}=this.art;e.playbackRate&&this.add((0,c.default)({name:"playbackRate",index:10})),e.aspectRatio&&this.add((0,u.default)({name:"aspectRatio",index:20})),e.flip&&this.add((0,f.default)({name:"flip",index:30})),this.add((0,m.default)({name:"info",index:40})),this.add((0,v.default)({name:"version",index:50})),this.add((0,b.default)({name:"close",index:60}));for(let t=0;t{if(!this.art.constructor.CONTEXTMENU)return;e.preventDefault(),this.show=!0;let t=e.clientX,o=e.clientY,{height:n,width:s,left:l,top:c}=(0,i.getRect)(r),{height:p,width:u}=(0,i.getRect)(a),d=t-l,f=o-c;t+u>l+s&&(d=s-u),o+p>c+n&&(f=n-p),(0,i.setStyles)(a,{top:`${f}px`,left:`${d}px`})}),t(r,"click",e=>{(0,i.includeFromEvent)(e,a)||(this.show=!1)}),this.art.on("blur",()=>{this.show=!1})}}r.default=x},{"../utils":"gpvEP","../utils/component":"j4qZZ","./playbackRate":"9jior","./aspectRatio":"igCMy","./flip":"4eLts","./info":"kETiY","./version":"abcPF","./close":"aWF54","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9jior":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{PLAYBACK_RATE:a}}=t,o=a.map(e=>`${1===e?r.get("Normal"):e.toFixed(1)}`).join("");return{...e,html:`${r.get("Play Speed")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.playbackRate=Number(a),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",()=>{let r=(0,i.queryAll)("span",e).find(e=>Number(e.dataset.value)===t.playbackRate);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],igCMy:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{ASPECT_RATIO:a}}=t,o=a.map(e=>`${"default"===e?r.get("Default"):e}`).join("");return{...e,html:`${r.get("Aspect Ratio")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.aspectRatio=a,e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4eLts":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return t=>{let{i18n:r,constructor:{FLIP:a}}=t,o=a.map(e=>`${r.get((0,i.capitalize)(e))}`).join("");return{...e,html:`${r.get("Video Flip")}: ${o}`,click:(e,r)=>{let{value:a}=r.target.dataset;a&&(t.flip=a.toLowerCase(),e.show=!1)},mounted:e=>{let r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",t=>{let r=(0,i.queryAll)("span",e).find(e=>e.dataset.value===t);r&&(0,i.inverseClass)(r,"art-current")})}}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],kETiY:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Video Info"),click:e=>{t.info.show=!0,e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],abcPF:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>function(e){return{...e,html:`ArtPlayer ${i.version}`}});var i=e("../../package.json")},{"../../package.json":"aQnLI","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],aWF54:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){return t=>({...e,html:t.i18n.get("Close"),click:e=>{e.show=!1}})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bFUCG:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="info",i.isMobile||this.init()}init(){let{proxy:e,constructor:t,template:{$infoPanel:r,$infoClose:a,$video:o}}=this.art;e(a,"click",()=>{this.show=!1});let n=null,s=(0,i.queryAll)("[data-video]",r)||[];this.art.on("destroy",()=>clearTimeout(n)),!function e(){for(let e=0;enull,this.init(e.option.subtitle);let t=!1;e.on("video:timeupdate",()=>{if(!this.url)return;let e=this.art.template.$video.webkitDisplayingFullscreen;"boolean"==typeof e&&e!==t&&(t=e,this.createTrack(e?"subtitles":"metadata",this.url))})}get url(){return this.art.template.$track.src}set url(e){this.switch(e)}get textTrack(){return this.art.template.$video?.textTracks?.[0]}get activeCues(){return this.textTrack?Array.from(this.textTrack.activeCues):[]}get cues(){return this.textTrack?Array.from(this.textTrack.cues):[]}style(e,t){let{$subtitle:r}=this.art.template;return"object"==typeof e?(0,i.setStyles)(r,e):(0,i.setStyle)(r,e,t)}update(){let{option:{subtitle:e},template:{$subtitle:t}}=this.art;t.innerHTML="",this.activeCues.length&&(this.art.emit("subtitleBeforeUpdate",this.activeCues),t.innerHTML=this.activeCues.map((t,r)=>t.text.split(/\r?\n/).filter(e=>e.trim()).map(t=>`
${e.escape?(0,i.escape)(t):t}
`).join("")).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}async switch(e,t={}){let{i18n:r,notice:a,option:o}=this.art,i={...o.subtitle,...t,url:e},n=await this.init(i);return t.name&&(a.show=`${r.get("Switch Subtitle")}: ${t.name}`),n}createTrack(e,t){let{template:r,proxy:a,option:o}=this.art,{$video:n,$track:s}=r,l=(0,i.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=o.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=()=>{this.art.emit("subtitleLoad",this.cues,this.option)},this.art.events.remove(this.destroyEvent),s.onload=null,(0,i.remove)(s),(0,i.append)(n,l),r.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",()=>this.update())}async init(e){let{notice:t,template:{$subtitle:r}}=this.art;return this.textTrack?((0,c.default)(e,u.default.subtitle),e.url)?(this.option=e,this.style(e.style),fetch(e.url).then(e=>e.arrayBuffer()).then(t=>{let r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,i.getExt)(e.url)){case"srt":{let t=(0,i.srtToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"ass":{let t=(0,i.assToVtt)(r),a=e.onVttLoad(t);return(0,i.vttToBlob)(a)}case"vtt":{let t=e.onVttLoad(r);return(0,i.vttToBlob)(t)}default:return e.url}}).then(e=>(r.innerHTML="",this.url===e||(URL.revokeObjectURL(this.url),this.createTrack("metadata",e)),e)).catch(e=>{throw r.innerHTML="",t.show=e,e})):void 0:null}}r.default=d},{"./utils":"gpvEP","./utils/component":"j4qZZ","option-validator":"49gY0","./scheme":"bEi0U","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],fpHt3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./clickInit"),n=o.interopDefault(i),s=e("./hoverInit"),l=o.interopDefault(s),c=e("./moveInit"),p=o.interopDefault(c),u=e("./resizeInit"),d=o.interopDefault(u),f=e("./gestureInit"),h=o.interopDefault(f),m=e("./viewInit"),g=o.interopDefault(m),v=e("./documentInit"),y=o.interopDefault(v),b=e("./updateInit"),x=o.interopDefault(b),w=e("./restoreInit"),j=o.interopDefault(w);r.default=class{constructor(e){this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,n.default)(e,this),(0,l.default)(e,this),(0,p.default)(e,this),(0,d.default)(e,this),(0,h.default)(e,this),(0,g.default)(e,this),(0,y.default)(e,this),(0,x.default)(e,this),(0,j.default)(e,this)}proxy(e,t,r,a={}){if(Array.isArray(t))return t.map(t=>this.proxy(e,t,r,a));e.addEventListener(t,r,a);let o=()=>e.removeEventListener(t,r,a);return this.destroyEvents.push(o),o}hover(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}remove(e){let t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}destroy(){for(let e=0;en);var i=e("../utils");function n(e,t){let{constructor:r,template:{$player:a,$video:o}}=e;t.proxy(document,["click","contextmenu"],t=>{(0,i.includeFromEvent)(t,a)?(e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit("focus",t)):(e.isInput=!1,e.isFocus=!1,e.emit("blur",t))});let n=[];t.proxy(o,"click",t=>{let a=Date.now();n.push(a);let{MOBILE_CLICK_PLAY:o,DBCLICK_TIME:s,MOBILE_DBCLICK_PLAY:l,DBCLICK_FULLSCREEN:c}=r,p=n.filter(e=>a-e<=s);switch(p.length){case 1:e.emit("click",t),i.isMobile?!e.isLock&&o&&e.toggle():e.toggle(),n=p;break;case 2:e.emit("dblclick",t),i.isMobile?!e.isLock&&l&&e.toggle():c&&(e.fullscreen=!e.fullscreen),n=[];break;default:n=[]}})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8qahy":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{$player:r}=e.template;t.hover(r,t=>{(0,i.addClass)(r,"art-hover"),e.emit("hover",!0,t)},t=>{(0,i.removeClass)(r,"art-hover"),e.emit("hover",!1,t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"5Eivu":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){let{$player:r}=e.template;t.proxy(r,"mousemove",t=>{e.emit("mousemove",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"905Dr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a}=e;e.on("resize",()=>{let{aspectRatio:t,notice:a}=e;"standard"===e.state&&r.autoSize&&e.autoSize(),e.aspectRatio=t,a.show=""});let o=(0,i.debounce)(()=>e.emit("resize"),a.RESIZE_TIME);t.proxy(window,["orientationchange","resize"],()=>o()),screen&&screen.orientation&&screen.orientation.onchange&&t.proxy(screen.orientation,"change",()=>o())}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"8F0uv":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>s);var i=e("../utils"),n=e("../control/progress");function s(e,t){if(i.isMobile&&!e.option.isLive){let{$video:r,$progress:a}=e.template,o=null,s=!1,l=0,c=0,p=0,u=t=>{if(1===t.touches.length&&!e.isLock){o===a&&(0,n.setCurrentTime)(e,t),s=!0;let{pageX:r,pageY:i}=t.touches[0];l=r,c=i,p=e.currentTime}},d=t=>{if(1===t.touches.length&&s&&e.duration){let{pageX:a,pageY:n}=t.touches[0],s=function(e,t,r,a){var o=t-a,i=r-e,n=0;if(2>Math.abs(i)&&2>Math.abs(o))return n;var s=180*Math.atan2(o,i)/Math.PI;return s>=-45&&s<45?n=4:s>=45&&s<135?n=1:s>=-135&&s<-45?n=2:(s>=135&&s<=180||s>=-180&&s<-135)&&(n=3),n}(l,c,a,n),u=[3,4].includes(s),d=[1,2].includes(s);if(u&&!e.isRotate||d&&e.isRotate){let s=(0,i.clamp)((a-l)/e.width,-1,1),u=(0,i.clamp)((n-c)/e.height,-1,1),d=e.isRotate?u:s,f=o===r?e.constructor.TOUCH_MOVE_RATIO:1,h=(0,i.clamp)(p+e.duration*d*f,0,e.duration);e.seek=h,e.emit("setBar","played",(0,i.clamp)(h/e.duration,0,1),t),e.notice.show=`${(0,i.secondToTime)(h)} / ${(0,i.secondToTime)(e.duration)}`}}};e.option.gesture&&(t.proxy(r,"touchstart",e=>{o=r,u(e)}),t.proxy(r,"touchmove",d)),t.proxy(a,"touchstart",e=>{o=a,u(e)}),t.proxy(a,"touchmove",d),t.proxy(document,"touchend",()=>{s&&(l=0,c=0,p=0,s=!1,o=null)})}}},{"../utils":"gpvEP","../control/progress":"2S7vj","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"26qSX":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e,t){let{option:r,constructor:a,template:{$container:o}}=e,n=(0,i.throttle)(()=>{e.emit("view",(0,i.isInViewport)(o,a.SCROLL_GAP))},a.SCROLL_TIME);t.proxy(window,"scroll",()=>n()),e.on("view",t=>{r.autoMini&&(e.mini=!t)})}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9wES9":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){t.proxy(document,"mousemove",t=>{e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",t=>{e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],cY9iQ:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){if(e.constructor.USE_RAF){let t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",()=>{cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3YYY5":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e,t){}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"9z96t":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("./utils");r.default=class{constructor(e){this.art=e,this.keys={},e.option.hotkey&&!o.isMobile&&this.init()}init(){let{proxy:e,constructor:t}=this.art;this.add("Escape",()=>{this.art.fullscreenWeb&&(this.art.fullscreenWeb=!1)}),this.add("Space",()=>{this.art.toggle()}),this.add("ArrowLeft",()=>{this.art.backward=t.SEEK_STEP}),this.add("ArrowUp",()=>{this.art.volume+=t.VOLUME_STEP}),this.add("ArrowRight",()=>{this.art.forward=t.SEEK_STEP}),this.add("ArrowDown",()=>{this.art.volume-=t.VOLUME_STEP}),e(document,"keydown",e=>{if(this.art.isFocus){let t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){let t=this.keys[e.code];if(t){e.preventDefault();for(let r=0;r{a.innerText="",(0,o.removeClass)(r,"art-notice-show")},t.NOTICE_TIME)):(0,o.removeClass)(r,"art-notice-show")}}},{"./utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],uwUok:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./utils"),n=e("./utils/component"),s=o.interopDefault(n);class l extends s.default{constructor(e){super(e),this.name="mask";let{template:t,icons:r,events:a}=e,o=(0,i.append)(t.$state,r.state),n=(0,i.append)(t.$state,r.error);(0,i.setStyle)(n,"display","none"),e.on("destroy",()=>{(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(n,"display",null)}),a.proxy(t.$state,"click",()=>e.play())}}r.default=l},{"./utils":"gpvEP","./utils/component":"j4qZZ","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"1F2QO":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("bundle-text:./loading.svg"),s=o.interopDefault(n),l=e("bundle-text:./state.svg"),c=o.interopDefault(l),p=e("bundle-text:./check.svg"),u=o.interopDefault(p),d=e("bundle-text:./play.svg"),f=o.interopDefault(d),h=e("bundle-text:./pause.svg"),m=o.interopDefault(h),g=e("bundle-text:./volume.svg"),v=o.interopDefault(g),y=e("bundle-text:./volume-close.svg"),b=o.interopDefault(y),x=e("bundle-text:./screenshot.svg"),w=o.interopDefault(x),j=e("bundle-text:./setting.svg"),k=o.interopDefault(j),S=e("bundle-text:./arrow-left.svg"),E=o.interopDefault(S),z=e("bundle-text:./arrow-right.svg"),$=o.interopDefault(z),I=e("bundle-text:./playback-rate.svg"),T=o.interopDefault(I),M=e("bundle-text:./aspect-ratio.svg"),F=o.interopDefault(M),P=e("bundle-text:./config.svg"),C=o.interopDefault(P),D=e("bundle-text:./pip.svg"),A=o.interopDefault(D),R=e("bundle-text:./lock.svg"),L=o.interopDefault(R),O=e("bundle-text:./unlock.svg"),q=o.interopDefault(O),_=e("bundle-text:./fullscreen-off.svg"),H=o.interopDefault(_),V=e("bundle-text:./fullscreen-on.svg"),N=o.interopDefault(V),B=e("bundle-text:./fullscreen-web-off.svg"),U=o.interopDefault(B),Y=e("bundle-text:./fullscreen-web-on.svg"),W=o.interopDefault(Y),K=e("bundle-text:./switch-on.svg"),Q=o.interopDefault(K),X=e("bundle-text:./switch-off.svg"),Z=o.interopDefault(X),G=e("bundle-text:./flip.svg"),J=o.interopDefault(G),ee=e("bundle-text:./error.svg"),et=o.interopDefault(ee),er=e("bundle-text:./close.svg"),ea=o.interopDefault(er),eo=e("bundle-text:./airplay.svg"),ei=o.interopDefault(eo);r.default=class{constructor(e){let t={loading:s.default,state:c.default,play:f.default,pause:m.default,check:u.default,volume:v.default,volumeClose:b.default,screenshot:w.default,setting:k.default,pip:A.default,arrowLeft:E.default,arrowRight:$.default,playbackRate:T.default,aspectRatio:F.default,config:C.default,lock:L.default,flip:J.default,unlock:q.default,fullscreenOff:H.default,fullscreenOn:N.default,fullscreenWebOff:U.default,fullscreenWebOn:W.default,switchOn:Q.default,switchOff:Z.default,error:et.default,close:ea.default,airplay:ei.default,...e.option.icons};for(let e in t)(0,i.def)(this,e,{get:()=>(0,i.getIcon)(e,t[e])})}}},{"../utils":"gpvEP","bundle-text:./loading.svg":"OH22M","bundle-text:./state.svg":"exeDr","bundle-text:./check.svg":"jDV5m","bundle-text:./play.svg":"8azN4","bundle-text:./pause.svg":"5ROTD","bundle-text:./volume.svg":"gd6yR","bundle-text:./volume-close.svg":"3xcqi","bundle-text:./screenshot.svg":"4bQmt","bundle-text:./setting.svg":"8JYeE","bundle-text:./arrow-left.svg":"1vtAE","bundle-text:./arrow-right.svg":"89K7J","bundle-text:./playback-rate.svg":"aboDI","bundle-text:./aspect-ratio.svg":"iXCLk","bundle-text:./config.svg":"f8v0I","bundle-text:./pip.svg":"5TDKn","bundle-text:./lock.svg":"7ioy7","bundle-text:./unlock.svg":"8M4rv","bundle-text:./fullscreen-off.svg":"iY4Nz","bundle-text:./fullscreen-on.svg":"8DF0G","bundle-text:./fullscreen-web-off.svg":"64eDf","bundle-text:./fullscreen-web-on.svg":"gxLKk","bundle-text:./switch-on.svg":"1a3p7","bundle-text:./switch-off.svg":"ioXaN","bundle-text:./flip.svg":"ghEK8","bundle-text:./error.svg":"3iobs","bundle-text:./close.svg":"dhbAn","bundle-text:./airplay.svg":"hbZQA","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],OH22M:[function(e,t,r,a){t.exports=''},{}],exeDr:[function(e,t,r,a){t.exports=''},{}],jDV5m:[function(e,t,r,a){t.exports=''},{}],"8azN4":[function(e,t,r,a){t.exports=''},{}],"5ROTD":[function(e,t,r,a){t.exports=''},{}],gd6yR:[function(e,t,r,a){t.exports=''},{}],"3xcqi":[function(e,t,r,a){t.exports=''},{}],"4bQmt":[function(e,t,r,a){t.exports=''},{}],"8JYeE":[function(e,t,r,a){t.exports=''},{}],"1vtAE":[function(e,t,r,a){t.exports=''},{}],"89K7J":[function(e,t,r,a){t.exports=''},{}],aboDI:[function(e,t,r,a){t.exports=''},{}],iXCLk:[function(e,t,r,a){t.exports=''},{}],f8v0I:[function(e,t,r,a){t.exports=''},{}],"5TDKn":[function(e,t,r,a){t.exports=''},{}],"7ioy7":[function(e,t,r,a){t.exports=''},{}],"8M4rv":[function(e,t,r,a){t.exports=''},{}],iY4Nz:[function(e,t,r,a){t.exports=''},{}],"8DF0G":[function(e,t,r,a){t.exports=''},{}],"64eDf":[function(e,t,r,a){t.exports=''},{}],gxLKk:[function(e,t,r,a){t.exports=''},{}],"1a3p7":[function(e,t,r,a){t.exports=''},{}],ioXaN:[function(e,t,r,a){t.exports=''},{}],ghEK8:[function(e,t,r,a){t.exports=''},{}],"3iobs":[function(e,t,r,a){t.exports=''},{}],dhbAn:[function(e,t,r,a){t.exports=''},{}],hbZQA:[function(e,t,r,a){t.exports=''},{}],aqPSH:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("./flip"),n=o.interopDefault(i),s=e("./aspectRatio"),l=o.interopDefault(s),c=e("./playbackRate"),p=o.interopDefault(c),u=e("./subtitleOffset"),d=o.interopDefault(u),f=e("../utils/component"),h=o.interopDefault(f),m=e("../utils");class g extends h.default{constructor(e){super(e);let{option:t,controls:r,template:{$setting:a}}=e;this.name="setting",this.$parent=a,this.id=0,this.active=null,this.cache=new Map,this.option=[...this.builtin,...t.settings],t.setting&&(this.format(),this.render(),e.on("blur",()=>{this.show&&(this.show=!1,this.render())}),e.on("focus",e=>{let t=(0,m.includeFromEvent)(e,r.setting),a=(0,m.includeFromEvent)(e,this.$parent);!this.show||t||a||(this.show=!1,this.render())}),e.on("resize",()=>this.resize()))}get builtin(){let e=[],{option:t}=this.art;return t.playbackRate&&e.push((0,p.default)(this.art)),t.aspectRatio&&e.push((0,l.default)(this.art)),t.flip&&e.push((0,n.default)(this.art)),t.subtitleOffset&&e.push((0,d.default)(this.art)),e}traverse(e,t=this.option){for(let r=0;r{t.default=t===e,t.default&&t.$item&&(0,m.inverseClass)(t.$item,"art-current")},e.$option),this.render(e.$parents)}format(e=this.option,t,r,a=[]){for(let o=0;ot}),(0,m.def)(i,"$parents",{get:()=>r}),(0,m.def)(i,"$option",{get:()=>e});let a=[];(0,m.def)(i,"$events",{get:()=>a}),(0,m.def)(i,"$formatted",{get:()=>!0})}this.format(i.selector||[],i,e,a)}this.option=e}find(e=""){let t=null;return this.traverse(r=>{r.name===e&&(t=r)}),t}resize(){let{controls:e,constructor:{SETTING_WIDTH:t,SETTING_ITEM_HEIGHT:r},template:{$player:a,$setting:o}}=this.art;if(e.setting&&this.show){let i=this.active[0]?.$parent?.width||t,{left:n,width:s}=(0,m.getRect)(e.setting),{left:l,width:c}=(0,m.getRect)(a),p=n-l+s/2-i/2,u=this.active===this.option?this.active.length*r:(this.active.length+1)*r;if((0,m.setStyle)(o,"height",`${u}px`),(0,m.setStyle)(o,"width",`${i}px`),this.art.isRotate||m.isMobile)return;p+i>c?((0,m.setStyle)(o,"left",null),(0,m.setStyle)(o,"right",null)):((0,m.setStyle)(o,"left",`${p}px`),(0,m.setStyle)(o,"right","auto"))}}inactivate(e){for(let t=0;t'),s=(0,m.createElement)("div");(0,m.addClass)(s,"art-setting-item-left-icon"),(0,m.append)(s,a),(0,m.append)(n,s),(0,m.append)(n,e.$parent.html);let l=r(i,"click",()=>this.render(e.$parents));e.$parent.$events.push(l),(0,m.append)(t,i)}createItem(e,t=!1){if(!this.cache.has(e.$option))return;let r=this.cache.get(e.$option),a=e.$item,o="selector";(0,m.has)(e,"switch")&&(o="switch"),(0,m.has)(e,"range")&&(o="range"),(0,m.has)(e,"onClick")&&(o="button");let{icons:i,proxy:n,constructor:s}=this.art,l=(0,m.createElement)("div");(0,m.addClass)(l,"art-setting-item"),(0,m.setStyle)(l,"height",`${s.SETTING_ITEM_HEIGHT}px`),l.dataset.name=e.name||"",l.dataset.value=e.value||"";let c=(0,m.append)(l,'
'),p=(0,m.append)(l,'
'),u=(0,m.createElement)("div");switch((0,m.addClass)(u,"art-setting-item-left-icon"),o){case"button":case"switch":case"range":(0,m.append)(u,e.icon||i.config);break;case"selector":e.selector?.length?(0,m.append)(u,e.icon||i.config):(0,m.append)(u,i.check)}(0,m.append)(c,u),(0,m.def)(e,"$icon",{configurable:!0,get:()=>u}),(0,m.def)(e,"icon",{configurable:!0,get:()=>u.innerHTML,set(e){u.innerHTML="",(0,m.append)(u,e)}});let d=(0,m.createElement)("div");(0,m.addClass)(d,"art-setting-item-left-text"),(0,m.append)(d,e.html||""),(0,m.append)(c,d),(0,m.def)(e,"$html",{configurable:!0,get:()=>d}),(0,m.def)(e,"html",{configurable:!0,get:()=>d.innerHTML,set(e){d.innerHTML="",(0,m.append)(d,e)}});let f=(0,m.createElement)("div");switch((0,m.addClass)(f,"art-setting-item-right-tooltip"),(0,m.append)(f,e.tooltip||""),(0,m.append)(p,f),(0,m.def)(e,"$tooltip",{configurable:!0,get:()=>f}),(0,m.def)(e,"tooltip",{configurable:!0,get:()=>f.innerHTML,set(e){f.innerHTML="",(0,m.append)(f,e)}}),o){case"switch":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,i.switchOn),a=(0,m.append)(t,i.switchOff);(0,m.setStyle)(e.switch?a:r,"display","none"),(0,m.append)(p,t),(0,m.def)(e,"$switch",{configurable:!0,get:()=>t});let o=e.switch;(0,m.def)(e,"switch",{configurable:!0,get:()=>o,set(e){o=e,e?((0,m.setStyle)(a,"display","none"),(0,m.setStyle)(r,"display",null)):((0,m.setStyle)(a,"display",null),(0,m.setStyle)(r,"display","none"))}});break}case"range":{let t=(0,m.createElement)("div");(0,m.addClass)(t,"art-setting-item-right-icon");let r=(0,m.append)(t,'');r.value=e.range[0],r.min=e.range[1],r.max=e.range[2],r.step=e.range[3],(0,m.addClass)(r,"art-setting-range"),(0,m.append)(p,t),(0,m.def)(e,"$range",{configurable:!0,get:()=>r});let a=[...e.range];(0,m.def)(e,"range",{configurable:!0,get:()=>a,set(e){a=[...e],r.value=e[0],r.min=e[1],r.max=e[2],r.step=e[3]}})}break;case"selector":if(e.selector?.length){let e=(0,m.createElement)("div");(0,m.addClass)(e,"art-setting-item-right-icon"),(0,m.append)(e,i.arrowRight),(0,m.append)(p,e)}}switch(o){case"switch":if(e.onSwitch){let t=n(l,"click",async t=>{e.switch=await e.onSwitch.call(this.art,e,l,t)});e.$events.push(t)}break;case"range":if(e.$range){if(e.onRange){let t=n(e.$range,"change",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onRange.call(this.art,e,l,t)});e.$events.push(t)}if(e.onChange){let t=n(e.$range,"input",async t=>{e.range[0]=e.$range.valueAsNumber,e.tooltip=await e.onChange.call(this.art,e,l,t)});e.$events.push(t)}}break;case"selector":{let t=n(l,"click",async t=>{e.selector?.length?this.render(e.selector):(this.check(e),e.$parent.onSelect&&(e.$parent.tooltip=await e.$parent.onSelect.call(this.art,e,l,t)))});e.$events.push(t),e.default&&(0,m.addClass)(l,"art-current")}break;case"button":if(e.onClick){let t=n(l,"click",async t=>{e.tooltip=await e.onClick.call(this.art,e,l,t)});e.$events.push(t)}}(0,m.def)(e,"$item",{configurable:!0,get:()=>l}),t?(0,m.replaceElement)(l,a):(0,m.append)(r,l),e.mounted&&setTimeout(()=>e.mounted.call(this.art,e.$item,e),0)}render(e=this.option){if(this.active=e,this.cache.has(e)){let t=this.cache.get(e);(0,m.inverseClass)(t,"art-current")}else{let t=(0,m.createElement)("div");this.cache.set(e,t),(0,m.addClass)(t,"art-setting-panel"),(0,m.append)(this.$parent,t),(0,m.inverseClass)(t,"art-current"),e[0]?.$parent&&this.createHeader(e[0]);for(let t=0;tn);var i=e("../utils");function n(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,FLIP:o}}=e;function n(e){return t.get((0,i.capitalize)(e))}function s(){let t=e.setting.find(`flip-${e.flip}`);e.setting.check(t)}return{width:a,name:"flip",html:t.get("Video Flip"),tooltip:n(e.flip),icon:r.flip,selector:o.map(t=>({value:t,name:`flip-${t}`,default:t===e.flip,html:n(t)})),onSelect:t=>(e.flip=t.value,t.html),mounted:()=>{s(),e.on("flip",()=>s())}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"6Hidr":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,ASPECT_RATIO:o}}=e;function i(e){return"default"===e?t.get("Default"):e}function n(){let t=e.setting.find(`aspect-ratio-${e.aspectRatio}`);e.setting.check(t)}return{width:a,name:"aspect-ratio",html:t.get("Aspect Ratio"),icon:r.aspectRatio,tooltip:i(e.aspectRatio),selector:o.map(t=>({value:t,name:`aspect-ratio-${t}`,default:t===e.aspectRatio,html:i(t)})),onSelect:t=>(e.aspectRatio=t.value,t.html),mounted:()=>{n(),e.on("aspectRatio",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"3qrNj":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:{SETTING_ITEM_WIDTH:a,PLAYBACK_RATE:o}}=e;function i(e){return 1===e?t.get("Normal"):e.toFixed(1)}function n(){let t=e.setting.find(`playback-rate-${e.playbackRate}`);e.setting.check(t)}return{width:a,name:"playback-rate",html:t.get("Play Speed"),tooltip:i(e.playbackRate),icon:r.playbackRate,selector:o.map(t=>({value:t,name:`playback-rate-${t}`,default:t===e.playbackRate,html:i(t)})),onSelect:t=>(e.playbackRate=t.value,t.html),mounted:()=>{n(),e.on("video:ratechange",()=>n())}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"4G52T":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function i(e){let{i18n:t,icons:r,constructor:a}=e;return{width:a.SETTING_ITEM_WIDTH,name:"subtitle-offset",html:t.get("Subtitle Offset"),icon:r.subtitle,tooltip:"0s",range:[0,-10,10,.1],onChange:t=>(e.subtitleOffset=t.range[0],t.range[0]+"s"),mounted:(t,r)=>{e.on("subtitleOffset",e=>{r.$range.value=e,r.tooltip=e+"s"})}}}o.defineInteropFlag(r),o.export(r,"default",()=>i)},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"48Pli":[function(e,t,r,a){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=class{constructor(){this.name="artplayer_settings",this.settings={}}get(e){try{let t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:t}catch(t){return e?this.settings[e]:this.settings}}set(e,t){try{let r=Object.assign({},this.get(),{[e]:t});window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[e]=t}}del(e){try{let t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}catch(t){delete this.settings[e]}}clear(){try{window.localStorage.removeItem(this.name)}catch(e){this.settings={}}}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],eOOz3:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r);var i=e("../utils"),n=e("./miniProgressBar"),s=o.interopDefault(n),l=e("./autoOrientation"),c=o.interopDefault(l),p=e("./autoPlayback"),u=o.interopDefault(p),d=e("./fastForward"),f=o.interopDefault(d),h=e("./lock"),m=o.interopDefault(h);r.default=class{constructor(e){this.art=e,this.id=0;let{option:t}=e;t.miniProgressBar&&!t.isLive&&this.add(s.default),t.lock&&i.isMobile&&this.add(m.default),t.autoPlayback&&!t.isLive&&this.add(u.default),t.autoOrientation&&i.isMobile&&this.add(c.default),t.fastForward&&i.isMobile&&!t.isLive&&this.add(f.default);for(let e=0;ethis.next(e,t)):this.next(e,t)}next(e,t){let r=t&&t.name||e.name||`plugin${this.id}`;return(0,i.errorHandle)(!(0,i.has)(this,r),`Cannot add a plugin that already has the same name: ${r}`),(0,i.def)(this,r,{value:t}),this}}},{"../utils":"gpvEP","./miniProgressBar":"bAQc0","./autoOrientation":"31jHc","./autoPlayback":"UojkI","./fastForward":"k8rjo","./lock":"ifBkM","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],bAQc0:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){return e.on("control",t=>{t?(0,i.removeClass)(e.template.$player,"art-mini-progress-bar"):(0,i.addClass)(e.template.$player,"art-mini-progress-bar")}),{name:"mini-progress-bar"}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],"31jHc":[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,template:{$player:r,$video:a}}=e;return e.on("fullscreenWeb",o=>{if(o){let{videoWidth:o,videoHeight:n}=a,{clientWidth:s,clientHeight:l}=document.documentElement;(o>n&&sl)&&setTimeout(()=>{(0,i.setStyle)(r,"width",`${l}px`),(0,i.setStyle)(r,"height",`${s}px`),(0,i.setStyle)(r,"transform-origin","0 0"),(0,i.setStyle)(r,"transform",`rotate(90deg) translate(0, -${s}px)`),(0,i.addClass)(r,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},t.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(r,"art-auto-orientation")&&((0,i.removeClass)(r,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",async e=>{if(!screen?.orientation?.lock)return;let t=screen.orientation.type;if(e){let{videoWidth:e,videoHeight:o}=a,{clientWidth:n,clientHeight:s}=document.documentElement;if(e>o&&ns){let e=t.startsWith("portrait")?"landscape":"portrait";await screen.orientation.lock(e),(0,i.addClass)(r,"art-auto-orientation-fullscreen")}}else(0,i.hasClass)(r,"art-auto-orientation-fullscreen")&&(await screen.orientation.lock(t),(0,i.removeClass)(r,"art-auto-orientation-fullscreen"))}),{name:"autoOrientation",get state(){return(0,i.hasClass)(r,"art-auto-orientation")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],UojkI:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{i18n:t,icons:r,storage:a,constructor:o,proxy:n,template:{$poster:s}}=e,l=e.layers.add({name:"auto-playback",html:`
`}),c=(0,i.query)(".art-auto-playback-last",l),p=(0,i.query)(".art-auto-playback-jump",l),u=(0,i.query)(".art-auto-playback-close",l);(0,i.append)(u,r.close);let d=null;function f(){let r=(a.get("times")||{})[e.option.id||e.option.url];clearTimeout(d),(0,i.setStyle)(l,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,i.setStyle)(l,"display","flex"),c.innerText=`${t.get("Last Seen")} ${(0,i.secondToTime)(r)}`,p.innerText=t.get("Jump Play"),n(u,"click",()=>{(0,i.setStyle)(l,"display","none")}),n(p,"click",()=>{e.seek=r,e.play(),(0,i.setStyle)(s,"display","none"),(0,i.setStyle)(l,"display","none")}),e.once("video:timeupdate",()=>{d=setTimeout(()=>{(0,i.setStyle)(l,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",()=>{if(e.playing){let t=a.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,a.set("times",t)}}),e.on("ready",f),e.on("restart",f),{name:"auto-playback",get times(){return a.get("times")||{}},clear:()=>a.del("times"),delete(e){let t=a.get("times")||{};return delete t[e],a.set("times",t),t}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],k8rjo:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{constructor:t,proxy:r,template:{$player:a,$video:o}}=e,n=null,s=!1,l=1,c=()=>{clearTimeout(n),s&&(s=!1,e.playbackRate=l,(0,i.removeClass)(a,"art-fast-forward"))};return r(o,"touchstart",r=>{1===r.touches.length&&e.playing&&!e.isLock&&(n=setTimeout(()=>{s=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,i.addClass)(a,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",c),r(document,"touchend",c),{name:"fastForward",get state(){return(0,i.hasClass)(a,"art-fast-forward")}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}],ifBkM:[function(e,t,r,a){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>n);var i=e("../utils");function n(e){let{layers:t,icons:r,template:{$player:a}}=e;function o(){return(0,i.hasClass)(a,"art-lock")}function n(){(0,i.addClass)(a,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function s(){(0,i.removeClass)(a,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted(t){let a=(0,i.append)(t,r.lock),o=(0,i.append)(t,r.unlock);(0,i.setStyle)(a,"display","none"),e.on("lock",e=>{e?((0,i.setStyle)(a,"display","inline-flex"),(0,i.setStyle)(o,"display","none")):((0,i.setStyle)(a,"display","none"),(0,i.setStyle)(o,"display","inline-flex"))})},click(){o()?s():n()}}),{name:"lock",get state(){return o()},set state(value){value?n():s()}}}},{"../utils":"gpvEP","@parcel/transformer-js/src/esmodule-helpers.js":"7o2zS"}]},["jz4E5"],"jz4E5","parcelRequireb749",{}); \ No newline at end of file diff --git a/packages/artplayer/dist/artplayer.legacy.js b/packages/artplayer/dist/artplayer.legacy.js index 7e335ea23..3dd89ada7 100644 --- a/packages/artplayer/dist/artplayer.legacy.js +++ b/packages/artplayer/dist/artplayer.legacy.js @@ -1,8 +1,8 @@ /*! - * artplayer.js v5.2.4 + * artplayer.js v5.2.5 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2025 Harvey Zack * Released under the MIT License. */ -!function(e,t,r,n,o,a,s,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof c[n]&&c[n],u=l.i||{},p=l.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof c[n]&&c[n];if(!r&&a)return a(t,!0);if(l)return l(t,!0);if(f&&"string"==typeof t)return f(t);var s=Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,u,i,i.exports,c)}return p[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=l,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=u,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h").concat(e))};i("Version@"+t.version);for(var c=0;c0)||void 0===arguments[0]||arguments[0];this.events.destroy(),this.template.destroy(e),er.splice(er.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return er}},{key:"version",get:function(){return l.version}},{key:"config",get:function(){return j.default}},{key:"utils",get:function(){return v}},{key:"scheme",get:function(){return y.default}},{key:"Emitter",get:function(){return m.default}},{key:"validator",get:function(){return d.default}},{key:"kindOf",get:function(){return d.default.kindOf}},{key:"html",get:function(){return w.default.html}},{key:"option",get:function(){var e;return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:function(e){return e}},moreVideoAttr:{controls:!1,preload:v.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:null==(e=navigator)?void 0:e.language.toLowerCase()}}}]),t}(m.default);en.STYLE=p.default,en.DEBUG=!1,en.CONTEXTMENU=!0,en.NOTICE_TIME=2e3,en.SETTING_WIDTH=250,en.SETTING_ITEM_WIDTH=200,en.SETTING_ITEM_HEIGHT=35,en.RESIZE_TIME=200,en.SCROLL_TIME=200,en.SCROLL_GAP=50,en.AUTO_PLAYBACK_MAX=10,en.AUTO_PLAYBACK_MIN=5,en.AUTO_PLAYBACK_TIMEOUT=3e3,en.RECONNECT_TIME_MAX=5,en.RECONNECT_SLEEP_TIME=1e3,en.CONTROL_HIDE_TIME=3e3,en.DBCLICK_TIME=300,en.DBCLICK_FULLSCREEN=!0,en.MOBILE_DBCLICK_PLAY=!0,en.MOBILE_CLICK_PLAY=!1,en.AUTO_ORIENTATION_TIME=200,en.INFO_LOOP_TIME=1e3,en.FAST_FORWARD_VALUE=3,en.FAST_FORWARD_TIME=1e3,en.TOUCH_MOVE_RATIO=.5,en.VOLUME_STEP=.1,en.SEEK_STEP=5,en.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],en.ASPECT_RATIO=["default","4:3","16:9"],en.FLIP=["normal","horizontal","vertical"],en.FULLSCREEN_WEB_IN_BODY=!1,en.LOG_VERSION=!0,en.USE_RAF=!1,v.isBrowser&&(window.Artplayer=en,v.setStyleText("artplayer-style",p.default),setTimeout(function(){en.LOG_VERSION&&console.log("%c ArtPlayer %c ".concat(en.version," %c https://artplayer.org"),"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../package.json":"7XQup","bundle-text:./style/index.less":"5ocQB","option-validator":"gfXqm","./utils/emitter":"5yEww","./utils":"b2ThP","./scheme":"7A6gr","./config":"fL7wI","./template":"phvND","./i18n":"cdQZN","./player":"2MjvF","./control":"5ma8b","./contextmenu":"dM9Mf","./info":"jcSTc","./subtitle":"kP0A3","./events":"dq2pN","./hotkey":"bFwyD","./layer":"kmc23","./loading":"kgaC4","./notice":"cKyIf","./mask":"20smU","./icons":"bwbJa","./setting":"90OCX","./storage":"5QsMA","./plugins":"5b6es","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aFrVF:[function(e,t,r,n){"use strict";var o=e("206ae600478262e1"),a=e("e9be447e8b980fc1"),s=e("3357997583474f25");r._=function(e,t,r){return t=o._(t),s._(e,a._()?Reflect.construct(t,r||[],o._(e).constructor):t.apply(e,r))}},{"206ae600478262e1":"cAaXX",e9be447e8b980fc1:"6eqqS","3357997583474f25":"fa3rG"}],cAaXX:[function(e,t,r,n){"use strict";function o(e){return r._=o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}r._=o},{}],"6eqqS":[function(e,t,r,n){"use strict";function o(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(r._=o=function(){return!!e})()}r._=o},{}],fa3rG:[function(e,t,r,n){"use strict";var o=e("2f044ca51fa80bb1"),a=e("95fbded20695b6ea");r._=function(e,t){return t&&("object"===a._(t)||"function"==typeof t)?t:o._(e)}},{"2f044ca51fa80bb1":"ckXPU","95fbded20695b6ea":"9vrOw"}],ckXPU:[function(e,t,r,n){"use strict";r._=function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},{}],"9vrOw":[function(e,t,r,n){"use strict";r._=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}},{}],"5Lt2s":[function(e,t,r,n){"use strict";r._=function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}},{}],fExy2:[function(e,t,r,n){"use strict";function o(e,t){for(var r=0;r","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"5ocQB":[function(e,t,r,n){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:rgba(0,0,0,.5);--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:rgba(255,255,255,.25);--art-hover-color:rgba(255,255,255,.25);--art-loaded-color:rgba(255,255,255,.25);--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:rgba(255,255,255,.5);--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:rgba(0,0,0,.85);--art-tip-background:rgba(0,0,0,.7);--art-scrollbar-size:4px;--art-scrollbar-background:rgba(255,255,255,.25);--art-scrollbar-background-hover:rgba(255,255,255,.5);--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;-ms-user-select:none;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:transparent;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;top:0;bottom:0;left:0;right:auto;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px rgba(0,0,0,.2),0 1px 2px -1px rgba(0,0,0,.2)}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:rgba(255,255,255,.25);justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;top:0;bottom:auto;left:0;right:0}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid rgba(255,255,255,.1);padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow-x:hidden;overflow-y:auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:rgba(255,255,255,.5)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{-ms-appearance:none;appearance:none;background-color:rgba(255,255,255,.2);outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid rgba(255,255,255,.1)}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;-ms-user-select:all;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;-ms-user-select:none;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px rgba(0,0,0,.5)}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:rgba(0,0,0,.25);justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow-x:hidden;overflow-y:auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:rgba(255,255,255,.1)}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid transparent;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],gfXqm:[function(e,t,r,n){var o=e("@swc/helpers/cjs/_type_of.cjs");t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==(0,o._)(Symbol.iterator)?function(e){return void 0===e?"undefined":(0,o._)(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":(0,o._)(e)})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===n(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(n(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function n(e){return e.constructor?e.constructor.name:null}function a(e,t){var n=21?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector(e)}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(t.querySelectorAll(e))}function c(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function u(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function f(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function h(e,t){for(var r in t)d(e,r,t[r]);return e}function m(e,t){var r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(n):n}function v(e){return Array.from(e.parentElement.children).filter(function(t){return t!==e})}function g(e,t){v(e).forEach(function(e){return l(e,t)}),c(e,t)}function y(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"top";a.isMobile||(e.setAttribute("aria-label",t),c(e,"hint--rounded"),c(e,"hint--".concat(r)))}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,a=r.top-t<=n&&r.top+r.height+t>=0,s=r.left-t<=o+t&&r.left+r.width+t>=0;return a&&s}function j(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function _(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=w("i");return c(r,"art-icon"),c(r,"art-icon-".concat(e)),p(r,t),r}function k(e,t){var r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function S(){var e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function T(e){return e.getBoundingClientRect()}function E(e,t){return new Promise(function(r,n){var o=new Image;o.onload=function(){if(t&&1!==t){var a=document.createElement("canvas"),s=a.getContext("2d");a.width=o.width*t,a.height=o.height*t,s.drawImage(o,0,0,a.width,a.height),a.toBlob(function(t){var o=URL.createObjectURL(t),a=new Image;a.onload=function(){r(a)},a.onerror=function(){URL.revokeObjectURL(o),n(Error("Image load failed: ".concat(e)))},a.src=o})}else r(o)},o.onerror=function(){n(Error("Image load failed: ".concat(e)))},o.src=e})}},{"./compatibility":"8NSoS","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8NSoS":[function(e,t,r,n){var o,a,s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"userAgent",function(){return i}),s.export(r,"isSafari",function(){return c}),s.export(r,"isWechat",function(){return l}),s.export(r,"isIE",function(){return u}),s.export(r,"isAndroid",function(){return p}),s.export(r,"isIOS",function(){return f}),s.export(r,"isIOS13",function(){return d}),s.export(r,"isMobile",function(){return h}),s.export(r,"isBrowser",function(){return m});var i=null!=(a=null==(o=globalThis)?void 0:o.CUSTOM_USER_AGENT)?a:"undefined"!=typeof navigator?navigator.userAgent:"",c=/^((?!chrome|android).)*safari/i.test(i),l=/MicroMessenger/i.test(i),u=/MSIE|Trident/i.test(i),p=/android/i.test(i),f=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,d=f||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,h=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||d,m="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lOuxs:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",function(){return c}),o.export(r,"errorHandle",function(){return l});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_inherits.cjs"),c=function(e){"use strict";function t(e,r){var n;return(0,s._)(this,t),n=(0,a._)(this,t,[e]),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n,r||n.constructor),n.name="ArtPlayerError",n}return(0,i._)(t,e),t}((0,e("@swc/helpers/cjs/_wrap_native_super.cjs")._)(Error));function l(e,t){if(!e)throw new c(t);return e}},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_wrap_native_super.cjs":"akKMe","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],akKMe:[function(e,t,r,n){"use strict";var o=e("a94182fa8bb55a"),a=e("3f24b40eec405e24"),s=e("7bc3453f771be53d"),i=e("d41aede23b6bd051");function c(e){var t="function"==typeof Map?new Map:void 0;return r._=c=function(e){if(null===e||!s._(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return o._(e,arguments,a._(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i._(r,e)},c(e)}r._=c},{a94182fa8bb55a:"rusRV","3f24b40eec405e24":"cAaXX","7bc3453f771be53d":"k1Uei",d41aede23b6bd051:"gBKVY"}],rusRV:[function(e,t,r,n){"use strict";var o=e("8b1faca180708ca4"),a=e("b6994c7e46a50bdb");function s(e,t,n){return o._()?r._=s=Reflect.construct:r._=s=function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&a._(o,r.prototype),o},s.apply(null,arguments)}r._=s},{"8b1faca180708ca4":"6eqqS",b6994c7e46a50bdb:"gBKVY"}],k1Uei:[function(e,t,r,n){"use strict";r._=function(e){return -1!==Function.toString.call(e).indexOf("[native code]")}},{}],"9JAsE":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,function(e,t,r){var n=r.slice(0,3);return 1===r.length&&(n=r+"00"),2===r.length&&(n=r+"0"),"".concat(t,",").concat(n)}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function s(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){var t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split(/[:.]/).map(function(e,t,r){if(t===r.length-1){if(1===e.length)return".".concat(e,"00");if(2===e.length)return".".concat(e,"0")}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?".".concat(e):":".concat(e)}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(function(e){var n=e.match(t);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(function(e){return e.trim()}).join("\n")}:null}).filter(function(e){return e}).map(function(e,t){return e?t+1+"\n"+"".concat(e.start," --\x3e ").concat(e.end)+"\n"+"".concat(e.text):""}).filter(function(e){return e.trim()}).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",function(){return a}),o.export(r,"vttToBlob",function(){return s}),o.export(r,"assToVtt",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dnHdh:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){var r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",function(){return function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}}),o.export(r,"download",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],fOScp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",function(){return i}),o.export(r,"has",function(){return l}),o.export(r,"get",function(){return u}),o.export(r,"mergeDeep",function(){return function e(){for(var t=arguments.length,r=Array(t),n=0;ne.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise(function(t){return setTimeout(t,e)})}function s(e,t){var r;return function(){for(var n=this,o=arguments.length,a=Array(o),s=0;s0?[t,r,n]:[r,n]).map(function(e){return e<10?"0".concat(e):String(e)}).join(":")}function c(e){return e.replace(/[&<>'"]/g,function(e){return({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e})}function l(e){var t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp("(".concat(Object.keys(t).join("|"),")"),"g");return e.replace(r,function(e){return t[e]||e})}o.defineInteropFlag(r),o.export(r,"clamp",function(){return a}),o.export(r,"capitalize",function(){return s}),o.export(r,"secondToTime",function(){return i}),o.export(r,"escape",function(){return c}),o.export(r,"unescape",function(){return l})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7A6gr":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",function(){return m});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils"),c="array",l="boolean",u="string",p="number",f="object",d="function";function h(e,t,r){return(0,i.errorHandle)(t===u||t===p||e instanceof Element,"".concat(r.join(".")," require '").concat(u,"' or 'Element' type"))}var m={html:h,disable:"?".concat(l),name:"?".concat(u),index:"?".concat(p),style:"?".concat(f),click:"?".concat(d),mounted:"?".concat(d),tooltip:"?".concat(u,"|").concat(p),width:"?".concat(p),selector:"?".concat(c),onSelect:"?".concat(d),switch:"?".concat(l),onSwitch:"?".concat(d),range:"?".concat(c),onRange:"?".concat(d),onChange:"?".concat(d)};r.default={id:u,container:h,url:u,poster:u,type:u,theme:u,lang:u,volume:p,isLive:l,muted:l,autoplay:l,autoSize:l,autoMini:l,loop:l,flip:l,playbackRate:l,aspectRatio:l,screenshot:l,setting:l,hotkey:l,pip:l,mutex:l,backdrop:l,fullscreen:l,fullscreenWeb:l,subtitleOffset:l,miniProgressBar:l,useSSR:l,playsInline:l,lock:l,gesture:l,fastForward:l,autoPlayback:l,autoOrientation:l,airplay:l,proxy:"?".concat(d),plugins:[d],layers:[m],contextmenu:[m],settings:[m],controls:[(0,s._)((0,a._)({},m),{position:function(e,t,r){var n=["top","left","right"];return(0,i.errorHandle)(n.includes(e),"".concat(r.join(".")," only accept ").concat(n.toString()," as parameters"))}})],quality:[{default:"?".concat(l),html:u,url:u}],highlight:[{time:p,text:u}],thumbnails:{url:u,number:p,column:p,width:p,height:p,scale:p},subtitle:{url:u,name:u,type:u,style:f,escape:l,encoding:u,onVttLoad:d},moreVideoAttr:f,i18n:f,icons:f,cssVar:f,customType:f}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7vaqr":[function(e,t,r,n){"use strict";var o=e("b3d0f206b721b857");r._=function(e){for(var t=1;t\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
'.concat(i.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
\nx\n
\n
\n
\n
[x]
\n
\n
\n\n ')}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../package.json":"7XQup","./utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],cdQZN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("../utils"),c=e("./zh-cn"),l=o.interopDefault(c),u=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.languages={"zh-cn":l.default},this.language={},this.update(t.option.i18n)}return(0,s._)(e,[{key:"init",value:function(){var e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}},{key:"get",value:function(e){return this.language[e]||e}},{key:"update",value:function(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../utils":"b2ThP","./zh-cn":"f0w6P","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],f0w6P:[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"2MjvF":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return ew});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("./urlMix"),i=o.interopDefault(s),c=e("./attrMix"),l=o.interopDefault(c),u=e("./playMix"),p=o.interopDefault(u),f=e("./pauseMix"),d=o.interopDefault(f),h=e("./toggleMix"),m=o.interopDefault(h),v=e("./seekMix"),g=o.interopDefault(v),y=e("./volumeMix"),b=o.interopDefault(y),j=e("./currentTimeMix"),_=o.interopDefault(j),w=e("./durationMix"),x=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),E=o.interopDefault(T),I=e("./aspectRatioMix"),P=o.interopDefault(I),M=e("./screenshotMix"),C=o.interopDefault(M),F=e("./fullscreenMix"),O=o.interopDefault(F),A=e("./fullscreenWebMix"),D=o.interopDefault(A),L=e("./pipMix"),R=o.interopDefault(L),$=e("./loadedMix"),z=o.interopDefault($),V=e("./playedMix"),q=o.interopDefault(V),H=e("./playingMix"),N=o.interopDefault(H),Z=e("./autoSizeMix"),B=o.interopDefault(Z),W=e("./rectMix"),U=o.interopDefault(W),Y=e("./flipMix"),X=o.interopDefault(Y),G=e("./miniMix"),K=o.interopDefault(G),J=e("./posterMix"),Q=o.interopDefault(J),ee=e("./autoHeightMix"),et=o.interopDefault(ee),er=e("./cssVarMix"),en=o.interopDefault(er),eo=e("./themeMix"),ea=o.interopDefault(eo),es=e("./typeMix"),ei=o.interopDefault(es),ec=e("./stateMix"),el=o.interopDefault(ec),eu=e("./subtitleOffsetMix"),ep=o.interopDefault(eu),ef=e("./airplayMix"),ed=o.interopDefault(ef),eh=e("./qualityMix"),em=o.interopDefault(eh),ev=e("./thumbnailsMix"),eg=o.interopDefault(ev),ey=e("./optionInit"),eb=o.interopDefault(ey),ej=e("./eventInit"),e_=o.interopDefault(ej),ew=function e(t){"use strict";(0,a._)(this,e),(0,i.default)(t),(0,l.default)(t),(0,p.default)(t),(0,d.default)(t),(0,m.default)(t),(0,g.default)(t),(0,b.default)(t),(0,_.default)(t),(0,x.default)(t),(0,S.default)(t),(0,E.default)(t),(0,P.default)(t),(0,C.default)(t),(0,O.default)(t),(0,D.default)(t),(0,R.default)(t),(0,z.default)(t),(0,q.default)(t),(0,N.default)(t),(0,B.default)(t),(0,U.default)(t),(0,X.default)(t),(0,K.default)(t),(0,Q.default)(t),(0,et.default)(t),(0,en.default)(t),(0,ea.default)(t),(0,ei.default)(t),(0,el.default)(t),(0,ep.default)(t),(0,ed.default)(t),(0,em.default)(t),(0,eg.default)(t),(0,e_.default)(t),(0,eb.default)(t)}},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","./urlMix":"brLGH","./attrMix":"4Gijp","./playMix":"TkS1b","./pauseMix":"6FrK0","./toggleMix":"ljXwE","./seekMix":"eXltp","./volumeMix":"2MkGB","./currentTimeMix":"3zu0H","./durationMix":"7DsNV","./switchMix":"iNRLI","./playbackRateMix":"gaUXG","./aspectRatioMix":"bliBr","./screenshotMix":"a0vr8","./fullscreenMix":"kxdxR","./fullscreenWebMix":"7gzYH","./pipMix":"5Q3PD","./loadedMix":"300dZ","./playedMix":"93dbl","./playingMix":"pmxRE","./autoSizeMix":"lwSCQ","./rectMix":"9vxAy","./flipMix":"h4E38","./miniMix":"bd6Da","./posterMix":"1MBAA","./autoHeightMix":"ktUvk","./cssVarMix":"iJjzq","./themeMix":"3U8gV","./typeMix":"699Bq","./stateMix":"9MC3x","./subtitleOffsetMix":"doLuv","./airplayMix":"1tHnW","./qualityMix":"2kVAq","./thumbnailsMix":"aPNcx","./optionInit":"l0xd8","./eventInit":"1WIo5","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],brLGH:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t=e.option,r=e.template.$video;(0,i.def)(e,"url",{get:function(){return r.src},set:function(n){return(0,a._)(function(){var o,a,c;return(0,s._)(this,function(s){switch(s.label){case 0:if(!n)return[3,4];if(o=e.url,a=t.type||(0,i.getExt)(n),c=t.customType[a],!(a&&c))return[3,2];return[4,(0,i.sleep)()];case 1:return s.sent(),e.loading.show=!0,c.call(e,r,n,e),[3,3];case 2:URL.revokeObjectURL(o),r.src=n,s.label=3;case 3:return o!==e.url&&(e.option.url=n,e.isReady&&o&&e.once("video:canplay",function(){e.emit("restart",n)})),[3,6];case 4:return[4,(0,i.sleep)()];case 5:s.sent(),e.loading.show=!0,s.label=6;case 6:return[2]}})})()}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,r,n){"use strict";function o(e,t,r,n,o,a,s){try{var i=e[a](s),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var s=e.apply(t,r);function i(e){o(s,n,a,i,c,"next",e)}function c(e){o(s,n,a,i,c,"throw",e)}i(void 0)})}}},{}],a4h1C:[function(e,t,r,n){"use strict";r._=e("3d8e14b4b7163380").__generator},{"3d8e14b4b7163380":"36MWs"}],"36MWs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return i}),o.export(r,"__assign",function(){return c}),o.export(r,"__rest",function(){return l}),o.export(r,"__decorate",function(){return u}),o.export(r,"__param",function(){return p}),o.export(r,"__esDecorate",function(){return f}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return h}),o.export(r,"__setFunctionName",function(){return m}),o.export(r,"__metadata",function(){return v}),o.export(r,"__awaiter",function(){return g}),o.export(r,"__generator",function(){return y}),o.export(r,"__createBinding",function(){return b}),o.export(r,"__exportStar",function(){return j}),o.export(r,"__values",function(){return _}),o.export(r,"__read",function(){return w}),o.export(r,"__spread",function(){return x}),o.export(r,"__spreadArrays",function(){return k}),o.export(r,"__spreadArray",function(){return S}),o.export(r,"__await",function(){return T}),o.export(r,"__asyncGenerator",function(){return E}),o.export(r,"__asyncDelegator",function(){return I}),o.export(r,"__asyncValues",function(){return P}),o.export(r,"__makeTemplateObject",function(){return M}),o.export(r,"__importStar",function(){return O}),o.export(r,"__importDefault",function(){return A}),o.export(r,"__classPrivateFieldGet",function(){return D}),o.export(r,"__classPrivateFieldSet",function(){return L}),o.export(r,"__classPrivateFieldIn",function(){return R}),o.export(r,"__addDisposableResource",function(){return $}),o.export(r,"__disposeResources",function(){return V}),o.export(r,"__rewriteRelativeImportExtension",function(){return q});var a=e("@swc/helpers/cjs/_type_of.cjs"),s=function(e,t){return(s=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function u(e,t,r,n){var o,s=arguments.length,i=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,a._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){return function(r,n){t(r,n,e)}}function f(e,t,r,n,o,s){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var c,l=n.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!t&&e?n.static?e:e.prototype:null,f=t||(p?Object.getOwnPropertyDescriptor(p,n.name):{}),d=!1,h=r.length-1;h>=0;h--){var m={};for(var v in n)m[v]="access"===v?{}:n[v];for(var v in n.access)m.access[v]=n.access[v];m.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");s.push(i(e||null))};var g=(0,r[h])("accessor"===l?{get:f.get,set:f.set}:f[u],m);if("accessor"===l){if(void 0===g)continue;if(null===g||(void 0===g?"undefined":(0,a._)(g))!=="object")throw TypeError("Object expected");(c=i(g.get))&&(f.get=c),(c=i(g.set))&&(f.set=c),(c=i(g.init))&&o.unshift(c)}else(c=i(g))&&("field"===l?o.unshift(c):f[u]=c)}p&&Object.defineProperty(p,n.name,f),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s}function x(){for(var e=[],t=0;t1||i(e,t)})},t&&(n[e]=t(n[e])))}function i(e,t){try{var r;(r=o[e](t)).value instanceof T?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}}function I(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:T(e[n](t)),done:!1}:o?o(t):t}:o}}function P(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=_(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var a,s,i;a=n,s=o,i=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){a({value:e,done:i})},s)})}}}function M(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},F=function(e){return(F=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=F(e),n=0;nu?((0,a.setStyle)(o,"width","".concat(u*l,"px")),(0,a.setStyle)(o,"height","100%"),(0,a.setStyle)(o,"margin","0 auto")):((0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","".concat(c/u,"px")),(0,a.setStyle)(o,"margin","auto 0")),s.dataset.aspectRatio=n}r.show="".concat(t.get("Aspect Ratio"),": ").concat("default"===n?t.get("Default"):n),e.emit("aspectRatio",n)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a0vr8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t,r=e.notice,n=e.template.$video,o=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),e(o.toDataURL("image/png"))}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"getBlobUrl",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob(function(t){e(URL.createObjectURL(t))})}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"screenshot",{value:(t=(0,a._)(function(t){var r,o;return(0,s._)(this,function(a){switch(a.label){case 0:return[4,e.getDataURL()];case 1:return r=a.sent(),o=t||"artplayer_".concat((0,i.secondToTime)(n.currentTime)),(0,i.download)(r,"".concat(o,".png")),e.emit("screenshot",r),[2,r]}})}),function(e){return t.apply(this,arguments)})})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kxdxR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../libs/screenfull"),c=o.interopDefault(i),l=e("../utils");function u(e){var t=e.i18n,r=e.notice,n=e.template,o=n.$video,i=n.$player,u=function(e){c.default.on("change",function(){e.emit("fullscreen",c.default.isFullscreen),c.default.isFullscreen?(e.state="fullscreen",(0,l.addClass)(i,"art-fullscreen")):(0,l.removeClass)(i,"art-fullscreen"),e.emit("resize")}),c.default.on("error",function(t){e.emit("fullscreenError",t)}),(0,l.def)(e,"fullscreen",{get:function(){return c.default.isFullscreen},set:function(e){return(0,a._)(function(){return(0,s._)(this,function(t){switch(t.label){case 0:if(!e)return[3,2];return[4,c.default.request(i)];case 1:return t.sent(),[3,4];case 2:return[4,c.default.exit()];case 3:t.sent(),t.label=4;case 4:return[2]}})})()}})},p=function(e){e.proxy(document,"webkitfullscreenchange",function(){e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,l.def)(e,"fullscreen",{get:function(){return document.fullscreenElement===o},set:function(t){t?(e.state="fullscreen",o.webkitEnterFullscreen()):o.webkitExitFullscreen()}})};e.once("video:loadedmetadata",function(){c.default.isEnabled?u(e):o.webkitSupportsFullscreen?p(e):(0,l.def)(e,"fullscreen",{get:function(){return!1},set:function(){r.show=t.get("Fullscreen Not Supported")}}),(0,l.def)(e,"fullscreen",(0,l.get)(e,"fullscreen"))})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../libs/screenfull":"6Yfu0","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"6Yfu0":[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("@swc/helpers/cjs/_sliced_to_array.cjs"),a=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],s=function(){if("undefined"==typeof document)return!1;var e=a[0],t={},r=!0,n=!1,s=void 0;try{for(var i,c=a[Symbol.iterator]();!(r=(i=c.next()).done);r=!0){var l=i.value;if(l[1]in document){var u=!0,p=!1,f=void 0;try{for(var d,h=l.entries()[Symbol.iterator]();!(u=(d=h.next()).done);u=!0){var m=(0,o._)(d.value,2),v=m[0],g=m[1];t[e[v]]=g}}catch(e){p=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(p)throw f}}return t}}}catch(e){n=!0,s=e}finally{try{r||null==c.return||c.return()}finally{if(n)throw s}}return!1}(),i={change:s.fullscreenchange,error:s.fullscreenerror},c={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.documentElement,t=arguments.length>1?arguments[1]:void 0;return new Promise(function(r,n){var o=function(){c.off("change",o),r()};c.on("change",o);var a=e[s.requestFullscreen](t);a instanceof Promise&&a.then(o).catch(n)})},exit:function(){return new Promise(function(e,t){if(!c.isFullscreen)return void e();var r=function(){c.off("change",r),e()};c.on("change",r);var n=document[s.exitFullscreen]();n instanceof Promise&&n.then(r).catch(t)})},toggle:function(e,t){return c.isFullscreen?c.exit():c.request(e,t)},onchange:function(e){c.on("change",e)},onerror:function(e){c.on("error",e)},on:function(e,t){var r=i[e];r&&document.addEventListener(r,t,!1)},off:function(e,t){var r=i[e];r&&document.removeEventListener(r,t,!1)},raw:s};Object.defineProperties(c,{isFullscreen:{get:function(){return!!document[s.fullscreenElement]}},element:{enumerable:!0,get:function(){return document[s.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return!!document[s.fullscreenEnabled]}}}),s||(c={isEnabled:!1}),r.default=c},{"@swc/helpers/cjs/_sliced_to_array.cjs":"69dwW","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"69dwW":[function(e,t,r,n){"use strict";var o=e("1c05c980d01d7095"),a=e("d604d0840046159b"),s=e("9ac1542249932d1a"),i=e("d04f777c592843b");r._=function(e,t){return o._(e)||a._(e,t)||i._(e,t)||s._()}},{"1c05c980d01d7095":"dgv90",d604d0840046159b:"8f1n5","9ac1542249932d1a":"edvMI",d04f777c592843b:"ikxEb"}],dgv90:[function(e,t,r,n){"use strict";r._=function(e){if(Array.isArray(e))return e}},{}],"8f1n5":[function(e,t,r,n){"use strict";r._=function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],s=!0,i=!1;try{for(o=o.call(e);!(s=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){i=!0,n=e}finally{try{s||null==o.return||o.return()}finally{if(i)throw n}}return a}}},{}],edvMI:[function(e,t,r,n){"use strict";r._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],"7gzYH":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.template,n=r.$container,o=r.$player,s="";(0,a.def)(e,"fullscreenWeb",{get:function(){return(0,a.hasClass)(o,"art-fullscreen-web")},set:function(r){r?(s=o.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(document.body,o),e.state="fullscreenWeb",(0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","100%"),(0,a.addClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(n,o),s&&(o.style.cssText=s,s=""),(0,a.removeClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"5Q3PD":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t,r,n,o,s=e.i18n,i=e.notice,c=e.template.$video;document.pictureInPictureEnabled?(t=e.template.$video,r=e.proxy,n=e.notice,t.disablePictureInPicture=!1,(0,a.def)(e,"pip",{get:function(){return document.pictureInPictureElement},set:function(r){r?(e.state="pip",t.requestPictureInPicture().catch(function(e){throw n.show=e,e})):document.exitPictureInPicture().catch(function(e){throw n.show=e,e})}}),r(t,"enterpictureinpicture",function(){e.emit("pip",!0)}),r(t,"leavepictureinpicture",function(){e.emit("pip",!1)})):c.webkitSupportsPresentationMode?((o=e.template.$video).webkitSetPresentationMode("inline"),(0,a.def)(e,"pip",{get:function(){return"picture-in-picture"===o.webkitPresentationMode},set:function(t){t?(e.state="pip",o.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(o.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})):(0,a.def)(e,"pip",{get:function(){return!1},set:function(){i.show=s.get("PIP Not Supported")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"300dZ":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"loaded",{get:function(){return e.loadedTime/t.duration}}),(0,a.def)(e,"loadedTime",{get:function(){return t.buffered.length?t.buffered.end(t.buffered.length-1):0}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"93dbl":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"played",{get:function(){return e.currentTime/e.duration}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],pmxRE:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"playing",{get:function(){return"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lwSCQ:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$player,o=t.$video;(0,a.def)(e,"autoSize",{value:function(){var t=o.videoWidth,s=o.videoHeight,i=(0,a.getRect)(r),c=i.width,l=i.height,u=t/s;c/l>u?((0,a.setStyle)(n,"width","".concat(l*u/c*100,"%")),(0,a.setStyle)(n,"height","100%")):((0,a.setStyle)(n,"width","100%"),(0,a.setStyle)(n,"height","".concat(c/u/l*100,"%"))),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9vxAy":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"rect",{get:function(){return(0,a.getRect)(e.template.$player)}});for(var t=["bottom","height","left","right","top","width"],r=0;r');(0,a.append)(d,t.close),r(d,"click",p);var h=(0,a.append)(s,'
'),m=(0,a.append)(h,t.play),v=(0,a.append)(h,t.pause);return r(m,"click",function(){return e.play()}),r(v,"click",function(){return e.pause()}),f(m,v),e.on("video:playing",function(){return f(m,v)}),e.on("video:pause",function(){return f(m,v)}),e.on("video:timeupdate",function(){return f(m,v)}),r(s,"mousedown",function(e){c=0===e.button,l=e.pageX,u=e.pageY}),e.on("document:mousemove",function(e){if(c){(0,a.addClass)(s,"art-mini-dragging");var t=e.pageX-l,r=e.pageY-u;(0,a.setStyle)(s,"transform","translate(".concat(t,"px, ").concat(r,"px)"))}}),e.on("document:mouseup",function(){if(c){c=!1,(0,a.removeClass)(s,"art-mini-dragging");var e=(0,a.getRect)(s);n.set("left",e.left),n.set("top",e.top),(0,a.setStyle)(s,"left","".concat(e.left,"px")),(0,a.setStyle)(s,"top","".concat(e.top,"px")),(0,a.setStyle)(s,"transform",null)}}),s}(),m=n.get("top"),v=n.get("left");"number"==typeof m&&"number"==typeof v?((0,a.setStyle)(h,"top","".concat(m,"px")),(0,a.setStyle)(h,"left","".concat(v,"px")),(0,a.isInViewport)(h)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1MBAA":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$poster;(0,a.def)(e,"poster",{get:function(){try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set:function(e){(0,a.setStyle)(t,"backgroundImage","url(".concat(e,")"))}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ktUvk:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$video;(0,a.def)(e,"autoHeight",{value:function(){var t=r.clientWidth,o=n.videoHeight,s=t/n.videoWidth*o;(0,a.setStyle)(r,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],iJjzq:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$player;(0,a.def)(e,"cssVar",{value:function(e,r){return r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"3U8gV":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"theme",{get:function(){return e.cssVar("--art-theme")},set:function(t){e.cssVar("--art-theme",t)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"699Bq":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"type",{get:function(){return e.option.type},set:function(t){e.option.type=t}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9MC3x":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=["mini","pip","fullscreen","fullscreenWeb"];(0,a.def)(e,"state",{get:function(){return t.find(function(t){return e[t]})||"standard"},set:function(r){for(var n=0;n0&&jc.clientWidth-m/2?(0,i.setStyle)(o,"left","".concat(c.clientWidth-m,"px")):(0,i.setStyle)(o,"left","".concat(t-m/2,"px"))}}(j):i.isMobile||(0,i.setStyle)(m,"display","none"),b&&(clearTimeout(u),u=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500)),s.label=3;case 3:return[2]}})}),function(e,r,n){return t.apply(this,arguments)})),(0,i.def)(e,"thumbnails",{get:function(){return e.option.thumbnails},set:function(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(u),u=null,p=null,f=!1,d=!1)}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],l0xd8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.option,r=e.storage,n=e.template,o=n.$video,s=n.$poster;for(var i in t.moreVideoAttr)e.attr(i,t.moreVideoAttr[i]);t.muted&&(e.muted=t.muted),t.volume&&(o.volume=(0,a.clamp)(t.volume,0,1));var c=r.get("volume");for(var l in"number"==typeof c&&(o.volume=(0,a.clamp)(c,0,1)),t.poster&&(0,a.setStyle)(s,"backgroundImage","url(".concat(t.poster,")")),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(l,t.cssVar[l]);e.url=t.url}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1WIo5":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../config"),c=o.interopDefault(i),l=e("../utils");function u(e){for(var t,r=e.i18n,n=e.notice,o=e.option,i=e.constructor,u=e.proxy,p=e.template,f=p.$player,d=p.$video,h=p.$poster,m=0,v=0;v=n.CONTROL_HIDE_TIME&&(r.show=!1)}),e.on("control",function(e){e?((0,D.removeClass)(a,"art-hide-cursor"),(0,D.addClass)(a,"art-hover"),r.timer=Date.now()):((0,D.addClass)(a,"art-hide-cursor"),(0,D.removeClass)(a,"art-hover"))}),r.init(),r}return(0,p._)(t,e),(0,c._)(t,[{key:"init",value:function(){var e=this,t=this.art.option;t.isLive||this.add((0,k.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,w.default)({name:"playAndPause",position:"left",index:10})),this.add((0,I.default)({name:"volume",position:"left",index:20})),t.isLive||this.add((0,T.default)({name:"time",position:"left",index:30})),t.quality.length&&(0,D.sleep)().then(function(){e.art.quality=t.quality}),t.screenshot&&!D.isMobile&&this.add((0,F.default)({name:"screenshot",position:"right",index:20})),t.setting&&this.add((0,M.default)({name:"setting",position:"right",index:30})),t.pip&&this.add((0,j.default)({name:"pip",position:"right",index:40})),t.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,A.default)({name:"airplay",position:"right",index:50})),t.fullscreenWeb&&this.add((0,y.default)({name:"fullscreenWeb",position:"right",index:60})),t.fullscreen&&this.add((0,v.default)({name:"fullscreen",position:"right",index:70}));for(var r=0;r=Number(a.dataset.index)});l?l.insertAdjacentElement("beforebegin",a):(0,i.append)(this.$parent,a),r.html&&(0,i.append)(a,r.html),r.style&&(0,i.setStyles)(a,r.style),r.tooltip&&(0,i.tooltip)(a,r.tooltip);var f=[];if(r.click){var d=this.art.events.proxy(a,"click",function(e){e.preventDefault(),r.click.call(t.art,t,e)});f.push(d)}return r.selector&&["left","right"].includes(r.position)&&this.selector(r,a,f),this[n]=a,this.cache.set(n,{$ref:a,events:f,option:r}),r.mounted&&r.mounted.call(this.art,a),a}}},{key:"remove",value:function(e){var t=this.cache.get(e);(0,c.errorHandle)(t,"Can't find [".concat(e,"] from the [").concat(this.name,"]")),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(var r=0;r\n
\n
\n
\n
\n
\n
\n\n ',mounted:function(e){var a=null,s=!1,u=(0,i.query)(".art-progress-hover",e),p=(0,i.query)(".art-progress-loaded",e),f=(0,i.query)(".art-progress-played",e),d=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function v(r,n){var o=n||c(t,r),a=o.width;m.innerText=o.time;var s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-s,"px")):(0,i.setStyle)(m,"left","".concat(a-s/2,"px"))}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,n,o){var s="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(p,"width","".concat(100*n,"%")),"hover"===r&&(0,i.setStyle)(u,"width","".concat(100*n,"%")),"played"===r&&((0,i.setStyle)(f,"width","".concat(100*n,"%")),(0,i.setStyle)(h,"left","".concat(100*n,"%"))),s&&((0,i.setStyle)(m,"display","flex"),v(o,{width:e.clientWidth*n,time:(0,i.secondToTime)(n*t.duration)}),clearTimeout(a),a=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){d.innerText="";for(var e=0;e');(0,i.append)(d,a)}}),t.constructor.USE_RAF?t.on("raf",function(){t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",function(){t.emit("setBar","played",t.played)}),t.on("video:progress",function(){t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",function(){t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",function(e){e.target!==h&&l(t,e)}),o(e,"mousemove",function(r){var n,o,a=c(t,r).percentage;(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,d))?(n=c(t,r).width,m.innerText=r.target.dataset.text,n<=(o=m.clientWidth)/2?(0,i.setStyle)(m,"left",0):n>e.clientWidth-o/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-o,"px")):(0,i.setStyle)(m,"left","".concat(n-o/2,"px"))):v(r)}),o(e,"mouseleave",function(e){(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",function(e){s=0===e.button}),t.on("document:mousemove",function(e){if(s){var r=c(t,e),n=r.second,o=r.percentage;t.emit("setBar","played",o,e),t.seek=n}}),t.on("document:mouseup",function(){s&&(s=!1)}))}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],goLby:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:function(e){function r(){var r="".concat((0,i.secondToTime)(t.currentTime)," / ").concat((0,i.secondToTime)(t.duration));r!==e.innerText&&(e.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o'),c=(0,i.append)(s,'
'),l=(0,i.append)(c,'
'),u=(0,i.append)(c,'
'),p=(0,i.append)(u,'
'),f=(0,i.append)(p,'
'),d=(0,i.append)(u,'
');function h(e){var t=(0,i.getRect)(u),r=t.top,n=t.height;return 1-(e.clientY-r)/n}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(a,"display","flex"),(0,i.setStyle)(d,"top","100%"),(0,i.setStyle)(f,"top","100%"),l.innerText=0;else{var e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(a,"display","none"),(0,i.setStyle)(d,"top","".concat(100-e,"%")),(0,i.setStyle)(f,"top","".concat(100-e,"%")),l.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",function(){t.muted=!0}),r(a,"click",function(){t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{var v=!1;r(u,"mousedown",function(e){v=0===e.button,t.volume=h(e)}),t.on("document:mousemove",function(e){v&&(t.muted=!1,t.volume=h(e))}),t.on("document:mouseup",function(){v&&(v=!1)})}}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kKnPP:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Show Setting"),mounted:function(e){var r=t.proxy,n=t.icons,o=t.i18n;(0,i.append)(e,n.setting),r(e,"click",function(){t.setting.toggle(),t.setting.resize()}),t.on("setting",function(t){(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aeKuL:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Screenshot"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.screenshot),r(e,"click",function(){t.screenshot()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8aY0p":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("AirPlay"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.airplay),r(e,"click",function(){return t.airplay()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dM9Mf:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return k});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("../utils"),u=e("../utils/component"),p=o.interopDefault(u),f=e("./playbackRate"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./flip"),g=o.interopDefault(v),y=e("./info"),b=o.interopDefault(y),j=e("./version"),_=o.interopDefault(j),w=e("./close"),x=o.interopDefault(w),k=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="contextmenu",r.$parent=e.template.$contextmenu,l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.option,n=t.proxy,o=t.template,a=o.$player,s=o.$contextmenu;r.playbackRate&&this.add((0,d.default)({name:"playbackRate",index:10})),r.aspectRatio&&this.add((0,m.default)({name:"aspectRatio",index:20})),r.flip&&this.add((0,g.default)({name:"flip",index:30})),this.add((0,b.default)({name:"info",index:40})),this.add((0,_.default)({name:"version",index:50})),this.add((0,x.default)({name:"close",index:60}));for(var i=0;iu+c&&(m=c-h),n+d>p+i&&(v=i-d),(0,l.setStyles)(s,{top:"".concat(v,"px"),left:"".concat(m,"px")})}}),n(a,"click",function(t){(0,l.includeFromEvent)(t,s)||(e.show=!1)}),this.art.on("blur",function(){e.show=!1})}}]),t}(p.default)},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../utils":"b2ThP","../utils/component":"axpVu","./playbackRate":"61GCm","./aspectRatio":"8m4GN","./flip":"ex4Tx","./info":"8zP29","./version":"aOnFp","./close":"hCr2L","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"61GCm":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.PLAYBACK_RATE.map(function(e){return'').concat(1===e?r.get("Normal"):e.toFixed(1),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Play Speed"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.playbackRate=Number(n),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",function(){var r=(0,i.queryAll)("span",e).find(function(e){return Number(e.dataset.value)===t.playbackRate});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8m4GN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.ASPECT_RATIO.map(function(e){return'').concat("default"===e?r.get("Default"):e,"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Aspect Ratio"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.aspectRatio=n,e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ex4Tx:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.FLIP.map(function(e){return'').concat(r.get((0,i.capitalize)(e)),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Video Flip"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.flip=n.toLowerCase(),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8zP29":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Video Info"),click:function(e){t.info.show=!0,e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aOnFp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return function(e){return(0,s._)((0,a._)({},e),{html:'ArtPlayer '.concat(i.version,"")})}});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../../package.json")},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../../package.json":"7XQup","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],hCr2L:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Close"),click:function(e){e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],jcSTc:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return p});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("./utils"),u=e("./utils/component"),p=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="info",l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor,o=t.template,a=o.$infoPanel,s=o.$infoClose,i=o.$video;r(s,"click",function(){e.show=!1});var c=null,u=(0,l.queryAll)("[data-video]",a)||[];this.art.on("destroy",function(){return clearTimeout(c)}),!function e(){for(var t=0;t\n ').concat(t.escape?(0,h.escape)(e):e,"\n")}).join("")}).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}},{key:"switch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this;return(0,a._)(function(){var n,o,a,s,i,c;return(0,d._)(this,function(l){switch(l.label){case 0:return o=(n=r.art).i18n,a=n.notice,s=n.option,i=(0,p._)((0,u._)({},s.subtitle,t),{url:e}),[4,r.init(i)];case 1:return c=l.sent(),t.name&&(a.show="".concat(o.get("Switch Subtitle"),": ").concat(t.name)),[2,c]}})})()}},{key:"createTrack",value:function(e,t){var r=this,n=this.art,o=n.template,a=n.proxy,s=n.option,i=o.$video,c=o.$track,l=(0,h.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=s.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=function(){r.art.emit("subtitleLoad",r.cues,r.option)},this.art.events.remove(this.destroyEvent),c.onload=null,(0,h.remove)(c),(0,h.append)(i,l),o.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",function(){return r.update()})}},{key:"init",value:function(e){var t=this;return(0,a._)(function(){var r,n,o;return(0,d._)(this,function(a){return(n=(r=t.art).notice,o=r.template.$subtitle,t.textTrack)?((0,y.default)(e,j.default.subtitle),e.url)?(t.option=e,t.style(e.style),[2,fetch(e.url).then(function(e){return e.arrayBuffer()}).then(function(t){var r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,h.getExt)(e.url)){case"srt":var n=(0,h.srtToVtt)(r),o=e.onVttLoad(n);return(0,h.vttToBlob)(o);case"ass":var a=(0,h.assToVtt)(r),s=e.onVttLoad(a);return(0,h.vttToBlob)(s);case"vtt":var i=e.onVttLoad(r);return(0,h.vttToBlob)(i);default:return e.url}}).then(function(e){return o.innerHTML="",t.url===e||(URL.revokeObjectURL(t.url),t.createTrack("metadata",e)),e}).catch(function(e){throw o.innerHTML="",n.show=e,e})]):[2]:[2,null]})})()}}]),t}(v.default)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@swc/helpers/cjs/_type_of.cjs":"9vrOw","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","./utils":"b2ThP","./utils/component":"axpVu","option-validator":"gfXqm","./scheme":"7A6gr","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dq2pN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return S});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./clickInit"),c=o.interopDefault(i),l=e("./hoverInit"),u=o.interopDefault(l),p=e("./moveInit"),f=o.interopDefault(p),d=e("./resizeInit"),h=o.interopDefault(d),m=e("./gestureInit"),v=o.interopDefault(m),g=e("./viewInit"),y=o.interopDefault(g),b=e("./documentInit"),j=o.interopDefault(b),_=e("./updateInit"),w=o.interopDefault(_),x=e("./restoreInit"),k=o.interopDefault(x),S=function(){"use strict";function e(t){(0,a._)(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,c.default)(t,this),(0,u.default)(t,this),(0,f.default)(t,this),(0,h.default)(t,this),(0,v.default)(t,this),(0,y.default)(t,this),(0,j.default)(t,this),(0,w.default)(t,this),(0,k.default)(t,this)}return(0,s._)(e,[{key:"proxy",value:function(e,t,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(t))return t.map(function(t){return n.proxy(e,t,r,o)});e.addEventListener(t,r,o);var a=function(){return e.removeEventListener(t,r,o)};return this.destroyEvents.push(a),a}},{key:"hover",value:function(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}},{key:"remove",value:function(e){var t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}},{key:"destroy",value:function(){for(var e=0;eMath.abs(a)&&2>Math.abs(o))return s;var i=180*Math.atan2(o,a)/Math.PI;return i>=-45&&i<45?s=4:i>=45&&i<135?s=1:i>=-135&&i<-45?s=2:(i>=135&&i<=180||i>=-180&&i<-135)&&(s=3),s}(l,u,o,s),d=[3,4].includes(f),h=[1,2].includes(f);if(d&&!e.isRotate||h&&e.isRotate){var m=(0,a.clamp)((o-l)/e.width,-1,1),v=(0,a.clamp)((s-u)/e.height,-1,1),g=e.isRotate?v:m,y=i===n?e.constructor.TOUCH_MOVE_RATIO:1,b=(0,a.clamp)(p+e.duration*g*y,0,e.duration);e.seek=b,e.emit("setBar","played",(0,a.clamp)(b/e.duration,0,1),t),e.notice.show="".concat((0,a.secondToTime)(b)," / ").concat((0,a.secondToTime)(e.duration))}}};e.option.gesture&&(t.proxy(n,"touchstart",function(e){i=n,f(e)}),t.proxy(n,"touchmove",d)),t.proxy(o,"touchstart",function(e){i=o,f(e)}),t.proxy(o,"touchmove",d),t.proxy(document,"touchend",function(){c&&(l=0,u=0,p=0,c=!1,i=null)})}}},{"../utils":"b2ThP","../control/progress":"V1ZQp","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ejGFW:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e,t){var r=e.option,n=e.constructor,o=e.template.$container,s=(0,a.throttle)(function(){e.emit("view",(0,a.isInViewport)(o,n.SCROLL_GAP))},n.SCROLL_TIME);t.proxy(window,"scroll",function(){return s()}),e.on("view",function(t){r.autoMini&&(e.mini=!t)})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"11fCO":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){t.proxy(document,"mousemove",function(t){e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",function(t){e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a6XAg:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){if(e.constructor.USE_RAF){var t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",function(){cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8OSVw":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],bFwyD:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./utils"),c=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.keys={},t.option.hotkey&&!i.isMobile&&this.init()}return(0,s._)(e,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor;this.add("Escape",function(){e.art.fullscreenWeb&&(e.art.fullscreenWeb=!1)}),this.add("Space",function(){e.art.toggle()}),this.add("ArrowLeft",function(){e.art.backward=n.SEEK_STEP}),this.add("ArrowUp",function(){e.art.volume+=n.VOLUME_STEP}),this.add("ArrowRight",function(){e.art.forward=n.SEEK_STEP}),this.add("ArrowDown",function(){e.art.volume-=n.VOLUME_STEP}),r(document,"keydown",function(t){if(e.art.isFocus){var r=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==r&&"TEXTAREA"!==r&&""!==n&&"true"!==n&&!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey){var o=e.keys[t.code];if(o){t.preventDefault();for(var a=0;a'},{}],pYOPx:[function(e,t,r,n){t.exports=''},{}],"9Ce7v":[function(e,t,r,n){t.exports=''},{}],jP8po:[function(e,t,r,n){t.exports=''},{}],"6qJgz":[function(e,t,r,n){t.exports=''},{}],w0y3C:[function(e,t,r,n){t.exports=''},{}],"38wNO":[function(e,t,r,n){t.exports=''},{}],"1ZHRu":[function(e,t,r,n){t.exports=''},{}],"7ow0e":[function(e,t,r,n){t.exports=''},{}],"1lkxY":[function(e,t,r,n){t.exports=''},{}],i49d6:[function(e,t,r,n){t.exports=''},{}],cmsy3:[function(e,t,r,n){t.exports=''},{}],ch53g:[function(e,t,r,n){t.exports=''},{}],"4GQVI":[function(e,t,r,n){t.exports=''},{}],fpn2n:[function(e,t,r,n){t.exports=''},{}],"7ZtmP":[function(e,t,r,n){t.exports=''},{}],"29rsS":[function(e,t,r,n){t.exports=''},{}],"1gXNA":[function(e,t,r,n){t.exports=''},{}],"1H4Nc":[function(e,t,r,n){t.exports=''},{}],ejF5C:[function(e,t,r,n){t.exports=''},{}],cSCUL:[function(e,t,r,n){t.exports=''},{}],fecYV:[function(e,t,r,n){t.exports=''},{}],"4umJD":[function(e,t,r,n){t.exports=''},{}],e9jva:[function(e,t,r,n){t.exports=''},{}],b95Il:[function(e,t,r,n){t.exports=''},{}],"2sSLq":[function(e,t,r,n){t.exports=''},{}],hliN0:[function(e,t,r,n){t.exports=''},{}],"90OCX":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return x});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_call_super.cjs"),i=e("@swc/helpers/cjs/_class_call_check.cjs"),c=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_inherits.cjs"),u=e("@swc/helpers/cjs/_to_consumable_array.cjs"),p=e("@swc/helpers/cjs/_ts_generator.cjs"),f=e("./flip"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./playbackRate"),g=o.interopDefault(v),y=e("./subtitleOffset"),b=o.interopDefault(y),j=e("../utils/component"),_=o.interopDefault(j),w=e("../utils"),x=function(e){"use strict";function t(e){(0,i._)(this,t);var r=(0,s._)(this,t,[e]),n=e.option,o=e.controls,a=e.template.$setting;return r.name="setting",r.$parent=a,r.id=0,r.active=null,r.cache=new Map,r.option=(0,u._)(r.builtin).concat((0,u._)(n.settings)),n.setting&&(r.format(),r.render(),e.on("blur",function(){r.show&&(r.show=!1,r.render())}),e.on("focus",function(e){var t=(0,w.includeFromEvent)(e,o.setting),n=(0,w.includeFromEvent)(e,r.$parent);!r.show||t||n||(r.show=!1,r.render())}),e.on("resize",function(){return r.resize()})),r}return(0,l._)(t,e),(0,c._)(t,[{key:"builtin",get:function(){var e=[],t=this.art.option;return t.playbackRate&&e.push((0,g.default)(this.art)),t.aspectRatio&&e.push((0,m.default)(this.art)),t.flip&&e.push((0,d.default)(this.art)),t.subtitleOffset&&e.push((0,b.default)(this.art)),e}},{key:"traverse",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.option,r=0;r0&&void 0!==arguments[0]?arguments[0]:this.option,r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=0;a0&&void 0!==arguments[0]?arguments[0]:"",t=null;return this.traverse(function(r){r.name===e&&(t=r)}),t}},{key:"resize",value:function(){var e=this.art,t=e.controls,r=e.constructor,n=r.SETTING_WIDTH,o=r.SETTING_ITEM_HEIGHT,a=e.template,s=a.$player,i=a.$setting;if(t.setting&&this.show){var c,l,u=(null==(l=this.active[0])||null==(c=l.$parent)?void 0:c.width)||n,p=(0,w.getRect)(t.setting),f=p.left,d=p.width,h=(0,w.getRect)(s),m=h.left,v=h.width,g=f-m+d/2-u/2,y=this.active===this.option?this.active.length*o:(this.active.length+1)*o;if((0,w.setStyle)(i,"height","".concat(y,"px")),(0,w.setStyle)(i,"width","".concat(u,"px")),this.art.isRotate||w.isMobile)return;g+u>v?((0,w.setStyle)(i,"left",null),(0,w.setStyle)(i,"right",null)):((0,w.setStyle)(i,"left","".concat(g,"px")),(0,w.setStyle)(i,"right","auto"))}}},{key:"inactivate",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:this.option;return t.push(e),this.format(),this.createItem(e),this.render(),e}},{key:"createHeader",value:function(e){var t=this;if(this.cache.has(e.$option)){var r=this.cache.get(e.$option),n=this.art,o=n.proxy,a=n.icons.arrowLeft,s=n.constructor.SETTING_ITEM_HEIGHT,i=(0,w.createElement)("div");(0,w.setStyle)(i,"height","".concat(s,"px")),(0,w.addClass)(i,"art-setting-item"),(0,w.addClass)(i,"art-setting-item-back");var c=(0,w.append)(i,'
'),l=(0,w.createElement)("div");(0,w.addClass)(l,"art-setting-item-left-icon"),(0,w.append)(l,a),(0,w.append)(c,l),(0,w.append)(c,e.$parent.html);var u=o(i,"click",function(){return t.render(e.$parents)});e.$parent.$events.push(u),(0,w.append)(r,i)}}},{key:"createItem",value:function(e){var t,r,n=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.cache.has(e.$option)){var s=this.cache.get(e.$option),i=e.$item,c="selector";(0,w.has)(e,"switch")&&(c="switch"),(0,w.has)(e,"range")&&(c="range"),(0,w.has)(e,"onClick")&&(c="button");var l=this.art,f=l.icons,d=l.proxy,h=l.constructor,m=(0,w.createElement)("div");(0,w.addClass)(m,"art-setting-item"),(0,w.setStyle)(m,"height","".concat(h.SETTING_ITEM_HEIGHT,"px")),m.dataset.name=e.name||"",m.dataset.value=e.value||"";var v=(0,w.append)(m,'
'),g=(0,w.append)(m,'
'),y=(0,w.createElement)("div");switch((0,w.addClass)(y,"art-setting-item-left-icon"),c){case"button":case"switch":case"range":(0,w.append)(y,e.icon||f.config);break;case"selector":(null==(t=e.selector)?void 0:t.length)?(0,w.append)(y,e.icon||f.config):(0,w.append)(y,f.check)}(0,w.append)(v,y),(0,w.def)(e,"$icon",{configurable:!0,get:function(){return y}}),(0,w.def)(e,"icon",{configurable:!0,get:function(){return y.innerHTML},set:function(e){y.innerHTML="",(0,w.append)(y,e)}});var b=(0,w.createElement)("div");(0,w.addClass)(b,"art-setting-item-left-text"),(0,w.append)(b,e.html||""),(0,w.append)(v,b),(0,w.def)(e,"$html",{configurable:!0,get:function(){return b}}),(0,w.def)(e,"html",{configurable:!0,get:function(){return b.innerHTML},set:function(e){b.innerHTML="",(0,w.append)(b,e)}});var j=(0,w.createElement)("div");switch((0,w.addClass)(j,"art-setting-item-right-tooltip"),(0,w.append)(j,e.tooltip||""),(0,w.append)(g,j),(0,w.def)(e,"$tooltip",{configurable:!0,get:function(){return j}}),(0,w.def)(e,"tooltip",{configurable:!0,get:function(){return j.innerHTML},set:function(e){j.innerHTML="",(0,w.append)(j,e)}}),c){case"switch":var _=(0,w.createElement)("div");(0,w.addClass)(_,"art-setting-item-right-icon");var x=(0,w.append)(_,f.switchOn),k=(0,w.append)(_,f.switchOff);(0,w.setStyle)(e.switch?k:x,"display","none"),(0,w.append)(g,_),(0,w.def)(e,"$switch",{configurable:!0,get:function(){return _}});var S=e.switch;(0,w.def)(e,"switch",{configurable:!0,get:function(){return S},set:function(e){S=e,e?((0,w.setStyle)(k,"display","none"),(0,w.setStyle)(x,"display",null)):((0,w.setStyle)(k,"display",null),(0,w.setStyle)(x,"display","none"))}});break;case"range":var T=(0,w.createElement)("div");(0,w.addClass)(T,"art-setting-item-right-icon");var E=(0,w.append)(T,'');E.value=e.range[0],E.min=e.range[1],E.max=e.range[2],E.step=e.range[3],(0,w.addClass)(E,"art-setting-range"),(0,w.append)(g,T),(0,w.def)(e,"$range",{configurable:!0,get:function(){return E}});var I=(0,u._)(e.range);(0,w.def)(e,"range",{configurable:!0,get:function(){return I},set:function(e){I=(0,u._)(e),E.value=e[0],E.min=e[1],E.max=e[2],E.step=e[3]}});break;case"selector":if(null==(r=e.selector)?void 0:r.length){var P=(0,w.createElement)("div");(0,w.addClass)(P,"art-setting-item-right-icon"),(0,w.append)(P,f.arrowRight),(0,w.append)(g,P)}}switch(c){case"switch":if(e.onSwitch){var M,C=this,F=d(m,"click",(M=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onSwitch.call(C.art,e,m,t)];case 1:return e.switch=r.sent(),[2]}})}),function(e){return M.apply(this,arguments)}));e.$events.push(F)}break;case"range":if(e.$range){if(e.onRange){var O,A=this,D=d(e.$range,"change",(O=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onRange.call(A.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return O.apply(this,arguments)}));e.$events.push(D)}if(e.onChange){var L,R=this,$=d(e.$range,"input",(L=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onChange.call(R.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return L.apply(this,arguments)}));e.$events.push($)}}break;case"selector":var z,V=this,q=d(m,"click",(z=(0,a._)(function(t){var r,n;return(0,p._)(this,function(o){switch(o.label){case 0:if(!(null==(r=e.selector)?void 0:r.length))return[3,1];return V.render(e.selector),[3,3];case 1:if(V.check(e),!e.$parent.onSelect)return[3,3];return n=e.$parent,[4,e.$parent.onSelect.call(V.art,e,m,t)];case 2:n.tooltip=o.sent(),o.label=3;case 3:return[2]}})}),function(e){return z.apply(this,arguments)}));e.$events.push(q),e.default&&(0,w.addClass)(m,"art-current");break;case"button":if(e.onClick){var H,N=this,Z=d(m,"click",(H=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onClick.call(N.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return H.apply(this,arguments)}));e.$events.push(Z)}}(0,w.def)(e,"$item",{configurable:!0,get:function(){return m}}),o?(0,w.replaceElement)(m,i):(0,w.append)(s,m),e.mounted&&setTimeout(function(){return e.mounted.call(n.art,e.$item,e)},0)}}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.option;if(this.active=e,this.cache.has(e)){var t=this.cache.get(e);(0,w.inverseClass)(t,"art-current")}else{var r,n=(0,w.createElement)("div");this.cache.set(e,n),(0,w.addClass)(n,"art-setting-panel"),(0,w.append)(this.$parent,n),(0,w.inverseClass)(n,"art-current"),(null==(r=e[0])?void 0:r.$parent)&&this.createHeader(e[0]);for(var o=0;oa&&lu)&&setTimeout(function(){(0,i.setStyle)(o,"width","".concat(u,"px")),(0,i.setStyle)(o,"height","".concat(l,"px")),(0,i.setStyle)(o,"transform-origin","0 0"),(0,i.setStyle)(o,"transform","rotate(90deg) translate(0, -".concat(l,"px)")),(0,i.addClass)(o,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},r.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(o,"art-auto-orientation")&&((0,i.removeClass)(o,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",(t=(0,a._)(function(e){var t,r,n,a,l,u,p,f,d;return(0,s._)(this,function(s){switch(s.label){case 0:if(!(null==(r=screen)||null==(t=r.orientation)?void 0:t.lock))return[2];if(n=screen.orientation.type,!e)return[3,3];if(a=c.videoWidth,l=c.videoHeight,p=(u=document.documentElement).clientWidth,f=u.clientHeight,!(a>l&&pf))return[3,2];return d=n.startsWith("portrait")?"landscape":"portrait",[4,screen.orientation.lock(d)];case 1:s.sent(),(0,i.addClass)(o,"art-auto-orientation-fullscreen"),s.label=2;case 2:return[3,5];case 3:if(!(0,i.hasClass)(o,"art-auto-orientation-fullscreen"))return[3,5];return[4,screen.orientation.lock(n)];case 4:s.sent(),(0,i.removeClass)(o,"art-auto-orientation-fullscreen"),s.label=5;case 5:return[2]}})}),function(e){return t.apply(this,arguments)})),{name:"autoOrientation",get state(){return(0,i.hasClass)(o,"art-auto-orientation")}}}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a1MWA:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.i18n,r=e.icons,n=e.storage,o=e.constructor,s=e.proxy,i=e.template.$poster,c=e.layers.add({name:"auto-playback",html:'\n
\n
\n
\n '}),l=(0,a.query)(".art-auto-playback-last",c),u=(0,a.query)(".art-auto-playback-jump",c),p=(0,a.query)(".art-auto-playback-close",c);(0,a.append)(p,r.close);var f=null;function d(){var r=(n.get("times")||{})[e.option.id||e.option.url];clearTimeout(f),(0,a.setStyle)(c,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,a.setStyle)(c,"display","flex"),l.innerText="".concat(t.get("Last Seen")," ").concat((0,a.secondToTime)(r)),u.innerText=t.get("Jump Play"),s(p,"click",function(){(0,a.setStyle)(c,"display","none")}),s(u,"click",function(){e.seek=r,e.play(),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(c,"display","none")}),e.once("video:timeupdate",function(){f=setTimeout(function(){(0,a.setStyle)(c,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",function(){if(e.playing){var t=n.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,n.set("times",t)}}),e.on("ready",d),e.on("restart",d),{name:"auto-playback",get times(){return n.get("times")||{}},clear:function(){return n.del("times")},delete:function(e){var t=n.get("times")||{};return delete t[e],n.set("times",t),t}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],c7yFC:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.proxy,n=e.template,o=n.$player,s=n.$video,i=null,c=!1,l=1,u=function(){clearTimeout(i),c&&(c=!1,e.playbackRate=l,(0,a.removeClass)(o,"art-fast-forward"))};return r(s,"touchstart",function(r){1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout(function(){c=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,a.addClass)(o,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",u),r(document,"touchend",u),{name:"fastForward",get state(){return(0,a.hasClass)(o,"art-fast-forward")}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lewgR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.layers,r=e.icons,n=e.template.$player;function o(){return(0,a.hasClass)(n,"art-lock")}function s(){(0,a.addClass)(n,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function i(){(0,a.removeClass)(n,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted:function(t){var n=(0,a.append)(t,r.lock),o=(0,a.append)(t,r.unlock);(0,a.setStyle)(n,"display","none"),e.on("lock",function(e){e?((0,a.setStyle)(n,"display","inline-flex"),(0,a.setStyle)(o,"display","none")):((0,a.setStyle)(n,"display","none"),(0,a.setStyle)(o,"display","inline-flex"))})},click:function(){o()?i():s()}}),{name:"lock",get state(){return o()},set state(value){value?s():i()}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}]},["bzF6W"],"bzF6W","parcelRequireb749",{}); \ No newline at end of file +!function(e,t,r,n,o,a,s,i){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l="function"==typeof c[n]&&c[n],u=l.i||{},p=l.cache||{},f="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!p[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof c[n]&&c[n];if(!r&&a)return a(t,!0);if(l)return l(t,!0);if(f&&"string"==typeof t)return f(t);var s=Error("Cannot find module '"+t+"'");throw s.code="MODULE_NOT_FOUND",s}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var i=p[t]=new d.Module(t);e[t][0].call(i.exports,u,i,i.exports,c)}return p[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=f,this.exports={}},d.modules=e,d.cache=p,d.parent=l,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=u,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var h=0;h").concat(e))};i("Version@"+t.version);for(var c=0;c0)||void 0===arguments[0]||arguments[0];this.events.destroy(),this.template.destroy(e),er.splice(er.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return er}},{key:"version",get:function(){return l.version}},{key:"config",get:function(){return j.default}},{key:"utils",get:function(){return v}},{key:"scheme",get:function(){return b.default}},{key:"Emitter",get:function(){return m.default}},{key:"validator",get:function(){return d.default}},{key:"kindOf",get:function(){return d.default.kindOf}},{key:"html",get:function(){return w.default.html}},{key:"option",get:function(){var e;return{id:"",container:"#artplayer",url:"",poster:"",type:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,useSSR:!1,playsInline:!0,lock:!1,gesture:!0,fastForward:!1,autoPlayback:!1,autoOrientation:!1,airplay:!1,proxy:void 0,layers:[],contextmenu:[],controls:[],settings:[],quality:[],highlight:[],plugins:[],thumbnails:{url:"",number:60,column:10,width:0,height:0,scale:1},subtitle:{url:"",type:"",style:{},name:"",escape:!0,encoding:"utf-8",onVttLoad:function(e){return e}},moreVideoAttr:{controls:!1,preload:v.isSafari?"auto":"metadata"},i18n:{},icons:{},cssVar:{},customType:{},lang:null==(e=navigator)?void 0:e.language.toLowerCase()}}}]),t}(m.default);en.STYLE=p.default,en.DEBUG=!1,en.CONTEXTMENU=!0,en.NOTICE_TIME=2e3,en.SETTING_WIDTH=250,en.SETTING_ITEM_WIDTH=200,en.SETTING_ITEM_HEIGHT=35,en.RESIZE_TIME=200,en.SCROLL_TIME=200,en.SCROLL_GAP=50,en.AUTO_PLAYBACK_MAX=10,en.AUTO_PLAYBACK_MIN=5,en.AUTO_PLAYBACK_TIMEOUT=3e3,en.RECONNECT_TIME_MAX=5,en.RECONNECT_SLEEP_TIME=1e3,en.CONTROL_HIDE_TIME=3e3,en.DBCLICK_TIME=300,en.DBCLICK_FULLSCREEN=!0,en.MOBILE_DBCLICK_PLAY=!0,en.MOBILE_CLICK_PLAY=!1,en.AUTO_ORIENTATION_TIME=200,en.INFO_LOOP_TIME=1e3,en.FAST_FORWARD_VALUE=3,en.FAST_FORWARD_TIME=1e3,en.TOUCH_MOVE_RATIO=.5,en.VOLUME_STEP=.1,en.SEEK_STEP=5,en.PLAYBACK_RATE=[.5,.75,1,1.25,1.5,2],en.ASPECT_RATIO=["default","4:3","16:9"],en.FLIP=["normal","horizontal","vertical"],en.FULLSCREEN_WEB_IN_BODY=!1,en.LOG_VERSION=!0,en.USE_RAF=!1,v.isBrowser&&(window.Artplayer=en,v.setStyleText("artplayer-style",p.default),setTimeout(function(){en.LOG_VERSION&&console.log("%c ArtPlayer %c ".concat(en.version," %c https://artplayer.org"),"color: #fff; background: #5f5f5f","color: #fff; background: #4bc729","")},100))},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../package.json":"7XQup","bundle-text:./style/index.less":"5ocQB","option-validator":"gfXqm","./utils/emitter":"5yEww","./utils":"b2ThP","./scheme":"7A6gr","./config":"fL7wI","./template":"phvND","./i18n":"cdQZN","./player":"2MjvF","./control":"5ma8b","./contextmenu":"dM9Mf","./info":"jcSTc","./subtitle":"kP0A3","./events":"dq2pN","./hotkey":"bFwyD","./layer":"kmc23","./loading":"kgaC4","./notice":"cKyIf","./mask":"20smU","./icons":"bwbJa","./setting":"90OCX","./storage":"5QsMA","./plugins":"5b6es","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aFrVF:[function(e,t,r,n){"use strict";var o=e("206ae600478262e1"),a=e("e9be447e8b980fc1"),s=e("3357997583474f25");r._=function(e,t,r){return t=o._(t),s._(e,a._()?Reflect.construct(t,r||[],o._(e).constructor):t.apply(e,r))}},{"206ae600478262e1":"cAaXX",e9be447e8b980fc1:"6eqqS","3357997583474f25":"fa3rG"}],cAaXX:[function(e,t,r,n){"use strict";function o(e){return r._=o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}r._=o},{}],"6eqqS":[function(e,t,r,n){"use strict";function o(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(r._=o=function(){return!!e})()}r._=o},{}],fa3rG:[function(e,t,r,n){"use strict";var o=e("2f044ca51fa80bb1"),a=e("95fbded20695b6ea");r._=function(e,t){return t&&("object"===a._(t)||"function"==typeof t)?t:o._(e)}},{"2f044ca51fa80bb1":"ckXPU","95fbded20695b6ea":"9vrOw"}],ckXPU:[function(e,t,r,n){"use strict";r._=function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},{}],"9vrOw":[function(e,t,r,n){"use strict";r._=function(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}},{}],"5Lt2s":[function(e,t,r,n){"use strict";r._=function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}},{}],fExy2:[function(e,t,r,n){"use strict";function o(e,t){for(var r=0;r","browserslist":"last 1 Chrome version","description":"ArtPlayer.js is a modern and full featured HTML5 video player","repository":{"type":"git","url":"git+https://github.com/zhw2590582/ArtPlayer.git"},"bugs":{"url":"https://github.com/zhw2590582/ArtPlayer/issues"},"keywords":["html5","video","player"],"dependencies":{"option-validator":"^2.0.6"}}')},{}],"5ocQB":[function(e,t,r,n){t.exports='.art-video-player{--art-theme:red;--art-font-color:#fff;--art-background-color:#000;--art-text-shadow-color:rgba(0,0,0,.5);--art-transition-duration:.2s;--art-padding:10px;--art-border-radius:3px;--art-progress-height:6px;--art-progress-color:rgba(255,255,255,.25);--art-hover-color:rgba(255,255,255,.25);--art-loaded-color:rgba(255,255,255,.25);--art-state-size:80px;--art-state-opacity:.8;--art-bottom-height:100px;--art-bottom-offset:20px;--art-bottom-gap:5px;--art-highlight-width:8px;--art-highlight-color:rgba(255,255,255,.5);--art-control-height:46px;--art-control-opacity:.75;--art-control-icon-size:36px;--art-control-icon-scale:1.1;--art-volume-height:120px;--art-volume-handle-size:14px;--art-lock-size:36px;--art-indicator-scale:0;--art-indicator-size:16px;--art-fullscreen-web-index:9999;--art-settings-icon-size:24px;--art-settings-max-height:300px;--art-selector-max-height:300px;--art-contextmenus-min-width:250px;--art-subtitle-font-size:20px;--art-subtitle-gap:5px;--art-subtitle-bottom:15px;--art-subtitle-border:#000;--art-widget-background:rgba(0,0,0,.85);--art-tip-background:rgba(0,0,0,.7);--art-scrollbar-size:4px;--art-scrollbar-background:rgba(255,255,255,.25);--art-scrollbar-background-hover:rgba(255,255,255,.5);--art-mini-progress-height:2px}.art-bg-cover{background-position:50%;background-repeat:no-repeat;background-size:cover}.art-bottom-gradient{background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x}.art-backdrop-filter{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-video-player{zoom:1;text-align:left;-ms-user-select:none;user-select:none;box-sizing:border-box;width:100%;height:100%;color:var(--art-font-color);background-color:var(--art-background-color);text-shadow:0 0 2px var(--art-text-shadow-color);-webkit-tap-highlight-color:transparent;-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none;direction:ltr;outline:0;margin:0 auto;padding:0;font-family:PingFang SC,Helvetica Neue,Microsoft YaHei,Roboto,Arial,sans-serif;font-size:14px;line-height:1.3;position:relative}.art-video-player *,.art-video-player :before,.art-video-player :after{box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:var(--art-scrollbar-size);height:var(--art-scrollbar-size)}.art-video-player ::-webkit-scrollbar-thumb{background-color:var(--art-scrollbar-background)}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:var(--art-scrollbar-background-hover)}.art-video-player img{vertical-align:top;max-width:100%}.art-video-player svg{fill:var(--art-font-color)}.art-video-player a{color:var(--art-font-color);text-decoration:none}.art-icon{justify-content:center;align-items:center;line-height:1;display:flex}.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{backdrop-filter:saturate(180%)blur(20px);background-color:rgba(0,0,0,.75)!important}.art-video{z-index:10;cursor:pointer;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-poster{z-index:11;pointer-events:none;background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-subtitle{z-index:20;text-align:center;pointer-events:none;justify-content:center;align-items:center;gap:var(--art-subtitle-gap);width:100%;bottom:var(--art-subtitle-bottom);font-size:var(--art-subtitle-font-size);transition:bottom var(--art-transition-duration)ease;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;flex-direction:column;padding:0 5%;display:none;position:absolute}.art-video-player.art-subtitle-show .art-subtitle{display:flex}.art-video-player.art-control-show .art-subtitle{bottom:calc(var(--art-control-height) + var(--art-subtitle-bottom))}.art-danmuku{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-layers{z-index:40;pointer-events:none;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:flex}.art-video-player .art-mask{z-index:50;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player .art-mask .art-state{opacity:0;width:var(--art-state-size);height:var(--art-state-size);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;display:flex;transform:scale(2)}.art-video-player.art-mask-show .art-state{cursor:pointer;pointer-events:auto;opacity:var(--art-state-opacity);transform:scale(1)}.art-video-player.art-loading-show .art-state{display:none}.art-video-player .art-loading{z-index:70;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{z-index:60;opacity:0;pointer-events:none;width:100%;height:100%;padding:0 var(--art-padding);transition:all var(--art-transition-duration)ease;background-size:100% var(--art-bottom-height);background-image:linear-gradient(transparent,rgba(0,0,0,.4),#000);background-position:bottom;background-repeat:repeat-x;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-progress{transform:translateY(var(--art-bottom-offset));transition:transform var(--art-transition-duration)ease}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1}.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{transform:translateY(0)}.art-bottom .art-progress{z-index:0;pointer-events:auto;padding-bottom:var(--art-bottom-gap);position:relative}.art-bottom .art-progress .art-control-progress{cursor:pointer;height:var(--art-progress-height);justify-content:center;align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner{width:100%;height:50%;transition:height var(--art-transition-duration)ease;background-color:var(--art-progress-color);align-items:center;display:flex;position:relative}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-hover{z-index:0;background-color:var(--art-hover-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{z-index:10;background-color:var(--art-loaded-color);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{z-index:20;background-color:var(--art-theme);width:0%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{z-index:30;pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{z-index:0;pointer-events:auto;width:100%;height:100%;transform:translateX(calc(var(--art-highlight-width)/-2));background-color:var(--art-highlight-color);position:absolute;top:0;bottom:0;left:0;right:auto;width:var(--art-highlight-width)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{z-index:40;width:var(--art-indicator-size);height:var(--art-indicator-size);transform:scale(var(--art-indicator-scale));margin-left:calc(var(--art-indicator-size)/-2);transition:transform var(--art-transition-duration)ease;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:0}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator .art-icon{pointer-events:none;width:100%;height:100%}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:hover{transform:scale(1.2)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator:active{transform:scale(1)!important}.art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{z-index:50;border-radius:var(--art-border-radius);white-space:nowrap;background-color:var(--art-tip-background);padding:3px 5px;font-size:12px;line-height:1;display:none;position:absolute;top:-25px;left:0}.art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-bottom .art-progress .art-control-thumbnails{bottom:calc(var(--art-bottom-gap) + 10px);border-radius:var(--art-border-radius);pointer-events:none;background-color:var(--art-widget-background);display:none;position:absolute;left:0;box-shadow:0 1px 3px rgba(0,0,0,.2),0 1px 2px -1px rgba(0,0,0,.2)}.art-bottom:hover .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{transform:scale(1)}.art-controls{z-index:10;pointer-events:auto;height:var(--art-control-height);justify-content:space-between;align-items:center;display:flex;position:relative}.art-controls .art-controls-left,.art-controls .art-controls-right{height:100%;display:flex}.art-controls .art-controls-center{flex:1;justify-content:center;align-items:center;height:100%;padding:0 10px;display:none}.art-controls .art-controls-right{justify-content:flex-end}.art-controls .art-control{cursor:pointer;white-space:nowrap;opacity:var(--art-control-opacity);min-height:var(--art-control-height);min-width:var(--art-control-height);transition:opacity var(--art-transition-duration)ease;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-controls .art-control .art-icon{height:var(--art-control-icon-size);width:var(--art-control-icon-size);transform:scale(var(--art-control-icon-scale));transition:transform var(--art-transition-duration)ease}.art-controls .art-control .art-icon:active{transform:scale(calc(var(--art-control-icon-scale)*.8))}.art-controls .art-control:hover{opacity:1}.art-control-volume{position:relative}.art-control-volume .art-volume-panel{text-align:center;cursor:default;opacity:0;pointer-events:none;left:0;right:0;bottom:var(--art-control-height);width:var(--art-control-height);height:var(--art-volume-height);transition:all var(--art-transition-duration)ease;justify-content:center;align-items:center;padding:0 5px;font-size:12px;display:flex;position:absolute;transform:translateY(10px)}.art-control-volume .art-volume-panel .art-volume-inner{border-radius:var(--art-border-radius);background-color:var(--art-widget-background);flex-direction:column;align-items:center;gap:10px;width:100%;height:100%;padding:10px 0 12px;display:flex}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider{cursor:pointer;flex:1;justify-content:center;width:100%;display:flex;position:relative}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle{border-radius:var(--art-border-radius);background-color:rgba(255,255,255,.25);justify-content:center;width:2px;display:flex;position:relative;overflow:hidden}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-handle .art-volume-loaded{z-index:0;background-color:var(--art-theme);width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider .art-volume-indicator{width:var(--art-volume-handle-size);height:var(--art-volume-handle-size);margin-top:calc(var(--art-volume-handle-size)/-2);background-color:var(--art-theme);transition:transform var(--art-transition-duration)ease;border-radius:100%;flex-shrink:0;position:absolute;transform:scale(1)}.art-control-volume .art-volume-panel .art-volume-inner .art-volume-slider:active .art-volume-indicator{transform:scale(.9)}.art-control-volume:hover .art-volume-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.art-video-player .art-notice{z-index:80;width:100%;height:auto;padding:var(--art-padding);pointer-events:none;display:none;position:absolute;top:0;bottom:auto;left:0;right:0}.art-video-player .art-notice .art-notice-inner{border-radius:var(--art-border-radius);background-color:var(--art-tip-background);padding:5px;line-height:1;display:inline-flex}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{z-index:120;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);min-width:var(--art-contextmenus-min-width);flex-direction:column;padding:5px 0;font-size:12px;display:none;position:absolute}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;border-bottom:1px solid rgba(255,255,255,.1);padding:10px 15px;display:flex}.art-video-player .art-contextmenus .art-contextmenu span{padding:0 8px}.art-video-player .art-contextmenus .art-contextmenu span:hover,.art-video-player .art-contextmenus .art-contextmenu span.art-current{color:var(--art-theme)}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:flex}.art-video-player .art-settings{z-index:90;border-radius:var(--art-border-radius);max-height:var(--art-settings-max-height);left:auto;right:var(--art-padding);bottom:var(--art-control-height);transition:all var(--art-transition-duration)ease;background-color:var(--art-widget-background);flex-direction:column;display:none;position:absolute;overflow-x:hidden;overflow-y:auto}.art-video-player .art-settings .art-setting-panel{flex-direction:column;display:none}.art-video-player .art-settings .art-setting-panel.art-current{display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item{cursor:pointer;transition:background-color var(--art-transition-duration)ease;justify-content:space-between;align-items:center;padding:0 5px;display:flex;overflow:hidden}.art-video-player .art-settings .art-setting-panel .art-setting-item:hover{background-color:rgba(255,255,255,.1)}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current{color:var(--art-theme)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-icon-check{visibility:hidden;height:15px}.art-video-player .art-settings .art-setting-panel .art-setting-item.art-current .art-icon-check{visibility:visible}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left{flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-left .art-setting-item-left-icon{height:var(--art-settings-icon-size);width:var(--art-settings-icon-size);justify-content:center;align-items:center;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right{justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-tooltip{white-space:nowrap;color:rgba(255,255,255,.5)}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-item-right-icon{justify-content:center;align-items:center;min-width:32px;height:24px;display:flex}.art-video-player .art-settings .art-setting-panel .art-setting-item .art-setting-item-right .art-setting-range{-ms-appearance:none;appearance:none;background-color:rgba(255,255,255,.2);outline:none;width:80px;height:3px}.art-video-player .art-settings .art-setting-panel .art-setting-item-back{border-bottom:1px solid rgba(255,255,255,.1)}.art-video-player.art-setting-show .art-settings{display:flex}.art-video-player .art-info{left:var(--art-padding);top:var(--art-padding);z-index:100;border-radius:var(--art-border-radius);background-color:var(--art-widget-background);padding:10px;font-size:12px;display:none;position:absolute}.art-video-player .art-info .art-info-panel{flex-direction:column;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item{align-items:center;gap:5px;display:flex}.art-video-player .art-info .art-info-panel .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-panel .art-info-item .art-info-content{text-overflow:ellipsis;white-space:nowrap;-ms-user-select:all;user-select:all;width:250px;overflow:hidden}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;top:5px;right:5px}.art-video-player.art-info-show .art-info{display:flex}.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio]{overflow:hidden}.art-video-player[data-aspect-ratio] .art-video{object-fit:fill;box-sizing:content-box}.art-fullscreen{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3}.art-fullscreen-web{--art-progress-height:8px;--art-indicator-size:20px;--art-control-height:60px;--art-control-icon-scale:1.3;z-index:var(--art-fullscreen-web-index);width:100%;height:100%;position:fixed;top:0;bottom:0;left:0;right:0}.art-mini-popup{z-index:9999;border-radius:var(--art-border-radius);cursor:move;-ms-user-select:none;user-select:none;background:#000;width:320px;height:180px;transition:opacity .2s;position:fixed;overflow:hidden;box-shadow:0 0 5px rgba(0,0,0,.5)}.art-mini-popup svg{fill:#fff}.art-mini-popup .art-video{pointer-events:none}.art-mini-popup .art-mini-close{z-index:20;cursor:pointer;opacity:0;transition:opacity .2s;position:absolute;top:10px;right:10px}.art-mini-popup .art-mini-state{z-index:30;pointer-events:none;opacity:0;background-color:rgba(0,0,0,.25);justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .2s;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.art-mini-popup .art-mini-state .art-icon{opacity:.75;cursor:pointer;pointer-events:auto;transition:transform .2s;transform:scale(3)}.art-mini-popup .art-mini-state .art-icon:active{transform:scale(2.5)}.art-mini-popup.art-mini-dragging{opacity:.9}.art-mini-popup:hover .art-mini-close,.art-mini-popup:hover .art-mini-state{opacity:1}.art-video-player[data-flip=horizontal] .art-video{transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{transform:scaleY(-1)}.art-video-player .art-layer-lock{height:var(--art-lock-size);width:var(--art-lock-size);top:50%;left:var(--art-padding);background-color:var(--art-tip-background);border-radius:50%;justify-content:center;align-items:center;display:none;position:absolute;transform:translateY(-50%)}.art-video-player .art-layer-auto-playback{border-radius:var(--art-border-radius);left:var(--art-padding);bottom:calc(var(--art-control-height) + var(--art-bottom-gap) + 10px);background-color:var(--art-widget-background);align-items:center;gap:10px;padding:10px;line-height:1;display:none;position:absolute}.art-video-player .art-layer-auto-playback .art-auto-playback-close{cursor:pointer;justify-content:center;align-items:center;display:flex}.art-video-player .art-layer-auto-playback .art-auto-playback-close svg{width:15px;height:15px;fill:var(--art-theme)}.art-video-player .art-layer-auto-playback .art-auto-playback-jump{color:var(--art-theme);cursor:pointer}.art-video-player.art-lock .art-subtitle{bottom:var(--art-subtitle-bottom)!important}.art-video-player.art-mini-progress-bar .art-bottom,.art-video-player.art-lock .art-bottom{opacity:1;background-image:none;padding:0}.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{transform:translateY(calc(var(--art-control-height) + var(--art-bottom-gap) + var(--art-progress-height)/4))}.art-video-player.art-mini-progress-bar .art-bottom .art-progress-indicator,.art-video-player.art-lock .art-bottom .art-progress-indicator{display:none!important}.art-video-player.art-control-show .art-layer-lock{display:flex}.art-control-selector{justify-content:center;display:flex;position:relative}.art-control-selector .art-selector-list{text-align:center;border-radius:var(--art-border-radius);opacity:0;pointer-events:none;bottom:var(--art-control-height);max-height:var(--art-selector-max-height);background-color:var(--art-widget-background);transition:all var(--art-transition-duration)ease;flex-direction:column;align-items:center;display:flex;position:absolute;overflow-x:hidden;overflow-y:auto;transform:translateY(10px)}.art-control-selector .art-selector-list .art-selector-item{flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:10px 15px;line-height:1;display:flex}.art-control-selector .art-selector-list .art-selector-item:hover{background-color:rgba(255,255,255,.1)}.art-control-selector .art-selector-list .art-selector-item:hover,.art-control-selector .art-selector-list .art-selector-item.art-current{color:var(--art-theme)}.art-control-selector:hover .art-selector-list{opacity:1;pointer-events:auto;transform:translateY(0)}[class*=hint--]{font-style:normal;display:inline-block;position:relative}[class*=hint--]:before,[class*=hint--]:after{visibility:hidden;opacity:0;z-index:1000000;pointer-events:none;transition:all .3s;position:absolute;transform:translate(0,0)}[class*=hint--]:hover:before,[class*=hint--]:hover:after{visibility:visible;opacity:1;transition-delay:.1s}[class*=hint--]:before{content:"";z-index:1000001;background:0 0;border:6px solid transparent;position:absolute}[class*=hint--]:after{color:#fff;white-space:nowrap;background:#000;padding:8px 10px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:12px;line-height:12px}[class*=hint--][aria-label]:after{content:attr(aria-label)}[class*=hint--][data-hint]:after{content:attr(data-hint)}[aria-label=""]:before,[aria-label=""]:after,[data-hint=""]:before,[data-hint=""]:after{display:none!important}.hint--top-left:before,.hint--top-right:before,.hint--top:before{border-top-color:#000}.hint--bottom-left:before,.hint--bottom-right:before,.hint--bottom:before{border-bottom-color:#000}.hint--left:before{border-left-color:#000}.hint--right:before{border-right-color:#000}.hint--top:before{margin-bottom:-11px}.hint--top:before,.hint--top:after{bottom:100%;left:50%}.hint--top:before{left:calc(50% - 6px)}.hint--top:after{transform:translate(-50%)}.hint--top:hover:before{transform:translateY(-8px)}.hint--top:hover:after{transform:translate(-50%)translateY(-8px)}.hint--bottom:before{margin-top:-11px}.hint--bottom:before,.hint--bottom:after{top:100%;left:50%}.hint--bottom:before{left:calc(50% - 6px)}.hint--bottom:after{transform:translate(-50%)}.hint--bottom:hover:before{transform:translateY(8px)}.hint--bottom:hover:after{transform:translate(-50%)translateY(8px)}.hint--right:before{margin-bottom:-6px;margin-left:-11px}.hint--right:after{margin-bottom:-14px}.hint--right:before,.hint--right:after{bottom:50%;left:100%}.hint--right:hover:before,.hint--right:hover:after{transform:translate(8px)}.hint--left:before{margin-bottom:-6px;margin-right:-11px}.hint--left:after{margin-bottom:-14px}.hint--left:before,.hint--left:after{bottom:50%;right:100%}.hint--left:hover:before,.hint--left:hover:after{transform:translate(-8px)}.hint--top-left:before{margin-bottom:-11px}.hint--top-left:before,.hint--top-left:after{bottom:100%;left:50%}.hint--top-left:before{left:calc(50% - 6px)}.hint--top-left:after{margin-left:12px;transform:translate(-100%)}.hint--top-left:hover:before{transform:translateY(-8px)}.hint--top-left:hover:after{transform:translate(-100%)translateY(-8px)}.hint--top-right:before{margin-bottom:-11px}.hint--top-right:before,.hint--top-right:after{bottom:100%;left:50%}.hint--top-right:before{left:calc(50% - 6px)}.hint--top-right:after{margin-left:-12px;transform:translate(0)}.hint--top-right:hover:before,.hint--top-right:hover:after{transform:translateY(-8px)}.hint--bottom-left:before{margin-top:-11px}.hint--bottom-left:before,.hint--bottom-left:after{top:100%;left:50%}.hint--bottom-left:before{left:calc(50% - 6px)}.hint--bottom-left:after{margin-left:12px;transform:translate(-100%)}.hint--bottom-left:hover:before{transform:translateY(8px)}.hint--bottom-left:hover:after{transform:translate(-100%)translateY(8px)}.hint--bottom-right:before{margin-top:-11px}.hint--bottom-right:before,.hint--bottom-right:after{top:100%;left:50%}.hint--bottom-right:before{left:calc(50% - 6px)}.hint--bottom-right:after{margin-left:-12px;transform:translate(0)}.hint--bottom-right:hover:before,.hint--bottom-right:hover:after{transform:translateY(8px)}.hint--small:after,.hint--medium:after,.hint--large:after{white-space:normal;word-wrap:break-word;line-height:1.4em}.hint--small:after{width:80px}.hint--medium:after{width:150px}.hint--large:after{width:300px}[class*=hint--]:after{text-shadow:0 -1px #000;box-shadow:4px 4px 8px rgba(0,0,0,.3)}.hint--error:after{text-shadow:0 -1px #592726;background-color:#b34e4d}.hint--error.hint--top-left:before,.hint--error.hint--top-right:before,.hint--error.hint--top:before{border-top-color:#b34e4d}.hint--error.hint--bottom-left:before,.hint--error.hint--bottom-right:before,.hint--error.hint--bottom:before{border-bottom-color:#b34e4d}.hint--error.hint--left:before{border-left-color:#b34e4d}.hint--error.hint--right:before{border-right-color:#b34e4d}.hint--warning:after{text-shadow:0 -1px #6c5328;background-color:#c09854}.hint--warning.hint--top-left:before,.hint--warning.hint--top-right:before,.hint--warning.hint--top:before{border-top-color:#c09854}.hint--warning.hint--bottom-left:before,.hint--warning.hint--bottom-right:before,.hint--warning.hint--bottom:before{border-bottom-color:#c09854}.hint--warning.hint--left:before{border-left-color:#c09854}.hint--warning.hint--right:before{border-right-color:#c09854}.hint--info:after{text-shadow:0 -1px #1a3c4d;background-color:#3986ac}.hint--info.hint--top-left:before,.hint--info.hint--top-right:before,.hint--info.hint--top:before{border-top-color:#3986ac}.hint--info.hint--bottom-left:before,.hint--info.hint--bottom-right:before,.hint--info.hint--bottom:before{border-bottom-color:#3986ac}.hint--info.hint--left:before{border-left-color:#3986ac}.hint--info.hint--right:before{border-right-color:#3986ac}.hint--success:after{text-shadow:0 -1px #1a321a;background-color:#458746}.hint--success.hint--top-left:before,.hint--success.hint--top-right:before,.hint--success.hint--top:before{border-top-color:#458746}.hint--success.hint--bottom-left:before,.hint--success.hint--bottom-right:before,.hint--success.hint--bottom:before{border-bottom-color:#458746}.hint--success.hint--left:before{border-left-color:#458746}.hint--success.hint--right:before{border-right-color:#458746}.hint--always:after,.hint--always:before{opacity:1;visibility:visible}.hint--always.hint--top:before{transform:translateY(-8px)}.hint--always.hint--top:after{transform:translate(-50%)translateY(-8px)}.hint--always.hint--top-left:before{transform:translateY(-8px)}.hint--always.hint--top-left:after{transform:translate(-100%)translateY(-8px)}.hint--always.hint--top-right:before,.hint--always.hint--top-right:after{transform:translateY(-8px)}.hint--always.hint--bottom:before{transform:translateY(8px)}.hint--always.hint--bottom:after{transform:translate(-50%)translateY(8px)}.hint--always.hint--bottom-left:before{transform:translateY(8px)}.hint--always.hint--bottom-left:after{transform:translate(-100%)translateY(8px)}.hint--always.hint--bottom-right:before,.hint--always.hint--bottom-right:after{transform:translateY(8px)}.hint--always.hint--left:before,.hint--always.hint--left:after{transform:translate(-8px)}.hint--always.hint--right:before,.hint--always.hint--right:after{transform:translate(8px)}.hint--rounded:after{border-radius:4px}.hint--no-animate:before,.hint--no-animate:after{transition-duration:0s}.hint--bounce:before,.hint--bounce:after{-webkit-transition:opacity .3s,visibility .3s,-webkit-transform .3s cubic-bezier(.71,1.7,.77,1.24);-moz-transition:opacity .3s,visibility .3s,-moz-transform .3s cubic-bezier(.71,1.7,.77,1.24);transition:opacity .3s,visibility .3s,transform .3s cubic-bezier(.71,1.7,.77,1.24)}.hint--no-shadow:before,.hint--no-shadow:after{text-shadow:initial;box-shadow:initial}.hint--no-arrow:before{display:none}.art-video-player.art-mobile{--art-bottom-gap:10px;--art-control-height:38px;--art-control-icon-scale:1;--art-state-size:60px;--art-settings-max-height:180px;--art-selector-max-height:180px;--art-indicator-scale:1;--art-control-opacity:1}.art-video-player.art-mobile .art-controls-left{margin-left:calc(var(--art-padding)/-1)}.art-video-player.art-mobile .art-controls-right{margin-right:calc(var(--art-padding)/-1)}'},{}],gfXqm:[function(e,t,r,n){var o=e("@swc/helpers/cjs/_type_of.cjs");t.exports=function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==(0,o._)(Symbol.iterator)?function(e){return void 0===e?"undefined":(0,o._)(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":(0,o._)(e)})(t)}var t=Object.prototype.toString,r=function(r){if(void 0===r)return"undefined";if(null===r)return"null";var o=e(r);if("boolean"===o)return"boolean";if("string"===o)return"string";if("number"===o)return"number";if("symbol"===o)return"symbol";if("function"===o)return"GeneratorFunction"===n(r)?"generatorfunction":"function";if(Array.isArray?Array.isArray(r):r instanceof Array)return"array";if(r.constructor&&"function"==typeof r.constructor.isBuffer&&r.constructor.isBuffer(r))return"buffer";if(function(e){try{if("number"==typeof e.length&&"function"==typeof e.callee)return!0}catch(e){if(-1!==e.message.indexOf("callee"))return!0}return!1}(r))return"arguments";if(r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate)return"date";if(r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit)return"error";if(r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(n(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"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next)return"generator";switch(o=t.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 o.slice(8,-1).toLowerCase().replace(/\s/g,"")};function n(e){return e.constructor?e.constructor.name:null}function a(e,t){var n=21?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:document;return t.querySelector(e)}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(t.querySelectorAll(e))}function c(e,t){return e.classList.add(t)}function l(e,t){return e.classList.remove(t)}function u(e,t){return e.classList.contains(t)}function p(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function f(e){return e.parentNode.removeChild(e)}function d(e,t,r){return e.style[t]=r,e}function h(e,t){for(var r in t)d(e,r,t[r]);return e}function m(e,t){var r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],n=window.getComputedStyle(e,null).getPropertyValue(t);return r?parseFloat(n):n}function v(e){return Array.from(e.parentElement.children).filter(function(t){return t!==e})}function g(e,t){v(e).forEach(function(e){return l(e,t)}),c(e,t)}function b(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"top";a.isMobile||(e.setAttribute("aria-label",t),c(e,"hint--rounded"),c(e,"hint--".concat(r)))}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=e.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,a=r.top-t<=n&&r.top+r.height+t>=0,s=r.left-t<=o+t&&r.left+r.width+t>=0;return a&&s}function j(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function _(e,t){return t.parentNode.replaceChild(e,t),e}function w(e){return document.createElement(e)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=w("i");return c(r,"art-icon"),c(r,"art-icon-".concat(e)),p(r,t),r}function k(e,t){var r=document.getElementById(e);r||((r=document.createElement("style")).id=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",function(){document.head.appendChild(r)}):(document.head||document.documentElement).appendChild(r)),r.textContent=t}function S(){var e=document.createElement("div");return e.style.display="flex","flex"===e.style.display}function T(e){return e.getBoundingClientRect()}function E(e,t){return new Promise(function(r,n){var o=new Image;o.onload=function(){if(t&&1!==t){var a=document.createElement("canvas"),s=a.getContext("2d");a.width=o.width*t,a.height=o.height*t,s.drawImage(o,0,0,a.width,a.height),a.toBlob(function(t){var o=URL.createObjectURL(t),a=new Image;a.onload=function(){r(a)},a.onerror=function(){URL.revokeObjectURL(o),n(Error("Image load failed: ".concat(e)))},a.src=o})}else r(o)},o.onerror=function(){n(Error("Image load failed: ".concat(e)))},o.src=e})}},{"./compatibility":"8NSoS","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8NSoS":[function(e,t,r,n){var o,a,s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(r),s.export(r,"userAgent",function(){return i}),s.export(r,"isSafari",function(){return c}),s.export(r,"isWechat",function(){return l}),s.export(r,"isIE",function(){return u}),s.export(r,"isAndroid",function(){return p}),s.export(r,"isIOS",function(){return f}),s.export(r,"isIOS13",function(){return d}),s.export(r,"isMobile",function(){return h}),s.export(r,"isBrowser",function(){return m});var i=null!=(a=null==(o=globalThis)?void 0:o.CUSTOM_USER_AGENT)?a:"undefined"!=typeof navigator?navigator.userAgent:"",c=/^((?!chrome|android).)*safari/i.test(i),l=/MicroMessenger/i.test(i),u=/MSIE|Trident/i.test(i),p=/android/i.test(i),f=/iPad|iPhone|iPod/i.test(i)&&!window.MSStream,d=f||i.includes("Macintosh")&&navigator.maxTouchPoints>=1,h=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(i)||d,m="undefined"!=typeof window},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lOuxs:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ArtPlayerError",function(){return c}),o.export(r,"errorHandle",function(){return l});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_inherits.cjs"),c=function(e){"use strict";function t(e,r){var n;return(0,s._)(this,t),n=(0,a._)(this,t,[e]),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n,r||n.constructor),n.name="ArtPlayerError",n}return(0,i._)(t,e),t}((0,e("@swc/helpers/cjs/_wrap_native_super.cjs")._)(Error));function l(e,t){if(!e)throw new c(t);return e}},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_wrap_native_super.cjs":"akKMe","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],akKMe:[function(e,t,r,n){"use strict";var o=e("a94182fa8bb55a"),a=e("3f24b40eec405e24"),s=e("7bc3453f771be53d"),i=e("d41aede23b6bd051");function c(e){var t="function"==typeof Map?new Map:void 0;return r._=c=function(e){if(null===e||!s._(e))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return o._(e,arguments,a._(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i._(r,e)},c(e)}r._=c},{a94182fa8bb55a:"rusRV","3f24b40eec405e24":"cAaXX","7bc3453f771be53d":"k1Uei",d41aede23b6bd051:"gBKVY"}],rusRV:[function(e,t,r,n){"use strict";var o=e("8b1faca180708ca4"),a=e("b6994c7e46a50bdb");function s(e,t,n){return o._()?r._=s=Reflect.construct:r._=s=function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&a._(o,r.prototype),o},s.apply(null,arguments)}r._=s},{"8b1faca180708ca4":"6eqqS",b6994c7e46a50bdb:"gBKVY"}],k1Uei:[function(e,t,r,n){"use strict";r._=function(e){return -1!==Function.toString.call(e).indexOf("[native code]")}},{}],"9JAsE":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){return"WEBVTT \r\n\r\n".concat(e.replace(/(\d\d:\d\d:\d\d)[,.](\d+)/g,function(e,t,r){var n=r.slice(0,3);return 1===r.length&&(n=r+"00"),2===r.length&&(n=r+"0"),"".concat(t,",").concat(n)}).replace(/\{\\([ibu])\}/g,"").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").replace(/{[\s\S]*?}/g,"").concat("\r\n\r\n"))}function s(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function i(e){var t=RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.split(/[:.]/).map(function(e,t,r){if(t===r.length-1){if(1===e.length)return".".concat(e,"00");if(2===e.length)return".".concat(e,"0")}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===r.length-1?".".concat(e):":".concat(e)}).join("")}return"WEBVTT\n\n"+e.split(/\r?\n/).map(function(e){var n=e.match(t);return n?{start:r(n[1].trim()),end:r(n[2].trim()),text:n[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map(function(e){return e.trim()}).join("\n")}:null}).filter(function(e){return e}).map(function(e,t){return e?t+1+"\n"+"".concat(e.start," --\x3e ").concat(e.end)+"\n"+"".concat(e.text):""}).filter(function(e){return e.trim()}).join("\n\n")}o.defineInteropFlag(r),o.export(r,"srtToVtt",function(){return a}),o.export(r,"vttToBlob",function(){return s}),o.export(r,"assToVtt",function(){return i})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dnHdh:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){var r=document.createElement("a");r.style.display="none",r.href=e,r.download=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}o.defineInteropFlag(r),o.export(r,"getExt",function(){return function e(t){return t.includes("?")?e(t.split("?")[0]):t.includes("#")?e(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}}),o.export(r,"download",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],fOScp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"def",function(){return i}),o.export(r,"has",function(){return l}),o.export(r,"get",function(){return u}),o.export(r,"mergeDeep",function(){return function e(){for(var t=arguments.length,r=Array(t),n=0;ne.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise(function(t){return setTimeout(t,e)})}function s(e,t){var r;return function(){for(var n=this,o=arguments.length,a=Array(o),s=0;s0?[t,r,n]:[r,n]).map(function(e){return e<10?"0".concat(e):String(e)}).join(":")}function c(e){return e.replace(/[&<>'"]/g,function(e){return({"&":"&","<":"<",">":">","'":"'",'"':"""})[e]||e})}function l(e){var t={"&":"&","<":"<",">":">","'":"'",""":'"'},r=RegExp("(".concat(Object.keys(t).join("|"),")"),"g");return e.replace(r,function(e){return t[e]||e})}o.defineInteropFlag(r),o.export(r,"clamp",function(){return a}),o.export(r,"capitalize",function(){return s}),o.export(r,"secondToTime",function(){return i}),o.export(r,"escape",function(){return c}),o.export(r,"unescape",function(){return l})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7A6gr":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"ComponentOption",function(){return m});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils"),c="array",l="boolean",u="string",p="number",f="object",d="function";function h(e,t,r){return(0,i.errorHandle)(t===u||t===p||e instanceof Element,"".concat(r.join(".")," require '").concat(u,"' or 'Element' type"))}var m={html:h,disable:"?".concat(l),name:"?".concat(u),index:"?".concat(p),style:"?".concat(f),click:"?".concat(d),mounted:"?".concat(d),tooltip:"?".concat(u,"|").concat(p),width:"?".concat(p),selector:"?".concat(c),onSelect:"?".concat(d),switch:"?".concat(l),onSwitch:"?".concat(d),range:"?".concat(c),onRange:"?".concat(d),onChange:"?".concat(d)};r.default={id:u,container:h,url:u,poster:u,type:u,theme:u,lang:u,volume:p,isLive:l,muted:l,autoplay:l,autoSize:l,autoMini:l,loop:l,flip:l,playbackRate:l,aspectRatio:l,screenshot:l,setting:l,hotkey:l,pip:l,mutex:l,backdrop:l,fullscreen:l,fullscreenWeb:l,subtitleOffset:l,miniProgressBar:l,useSSR:l,playsInline:l,lock:l,gesture:l,fastForward:l,autoPlayback:l,autoOrientation:l,airplay:l,proxy:"?".concat(d),plugins:[d],layers:[m],contextmenu:[m],settings:[m],controls:[(0,s._)((0,a._)({},m),{position:function(e,t,r){var n=["top","left","right"];return(0,i.errorHandle)(n.includes(e),"".concat(r.join(".")," only accept ").concat(n.toString()," as parameters"))}})],quality:[{default:"?".concat(l),html:u,url:u}],highlight:[{time:p,text:u}],thumbnails:{url:u,number:p,column:p,width:p,height:p,scale:p},subtitle:{url:u,name:u,type:u,style:f,escape:l,encoding:u,onVttLoad:d},moreVideoAttr:f,i18n:f,icons:f,cssVar:f,customType:f}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"7vaqr":[function(e,t,r,n){"use strict";var o=e("b3d0f206b721b857");r._=function(e){for(var t=1;t\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
'.concat(i.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
\nx\n
\n
\n
\n
[x]
\n
\n
\n\n ')}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../package.json":"7XQup","./utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],cdQZN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("../utils"),c=e("./zh-cn"),l=o.interopDefault(c),u=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.languages={"zh-cn":l.default},this.language={},this.update(t.option.i18n)}return(0,s._)(e,[{key:"init",value:function(){var e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}},{key:"get",value:function(e){return this.language[e]||e}},{key:"update",value:function(e){this.languages=(0,i.mergeDeep)(this.languages,e),this.init()}}]),e}()},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","../utils":"b2ThP","./zh-cn":"f0w6P","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],f0w6P:[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o={"Video Info":"统计信息",Close:"关闭","Video Load Failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音","Video Flip":"画面翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Show Setting":"显示设置","Hide Setting":"隐藏设置",Screenshot:"截图","Play Speed":"播放速度","Aspect Ratio":"画面比例",Default:"默认",Normal:"正常",Open:"打开","Switch Video":"切换","Switch Subtitle":"切换字幕",Fullscreen:"全屏","Exit Fullscreen":"退出全屏","Web Fullscreen":"网页全屏","Exit Web Fullscreen":"退出网页全屏","Mini Player":"迷你播放器","PIP Mode":"开启画中画","Exit PIP Mode":"退出画中画","PIP Not Supported":"不支持画中画","Fullscreen Not Supported":"不支持全屏","Subtitle Offset":"字幕偏移","Last Seen":"上次看到","Jump Play":"跳转播放",AirPlay:"隔空播放","AirPlay Not Available":"隔空播放不可用"};r.default=o,"undefined"!=typeof window&&(window["artplayer-i18n-zh-cn"]=o)},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"2MjvF":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return ew});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("./urlMix"),i=o.interopDefault(s),c=e("./attrMix"),l=o.interopDefault(c),u=e("./playMix"),p=o.interopDefault(u),f=e("./pauseMix"),d=o.interopDefault(f),h=e("./toggleMix"),m=o.interopDefault(h),v=e("./seekMix"),g=o.interopDefault(v),b=e("./volumeMix"),y=o.interopDefault(b),j=e("./currentTimeMix"),_=o.interopDefault(j),w=e("./durationMix"),x=o.interopDefault(w),k=e("./switchMix"),S=o.interopDefault(k),T=e("./playbackRateMix"),E=o.interopDefault(T),I=e("./aspectRatioMix"),P=o.interopDefault(I),M=e("./screenshotMix"),C=o.interopDefault(M),F=e("./fullscreenMix"),O=o.interopDefault(F),A=e("./fullscreenWebMix"),D=o.interopDefault(A),L=e("./pipMix"),R=o.interopDefault(L),$=e("./loadedMix"),z=o.interopDefault($),V=e("./playedMix"),q=o.interopDefault(V),H=e("./playingMix"),N=o.interopDefault(H),Z=e("./autoSizeMix"),B=o.interopDefault(Z),W=e("./rectMix"),U=o.interopDefault(W),Y=e("./flipMix"),X=o.interopDefault(Y),G=e("./miniMix"),K=o.interopDefault(G),J=e("./posterMix"),Q=o.interopDefault(J),ee=e("./autoHeightMix"),et=o.interopDefault(ee),er=e("./cssVarMix"),en=o.interopDefault(er),eo=e("./themeMix"),ea=o.interopDefault(eo),es=e("./typeMix"),ei=o.interopDefault(es),ec=e("./stateMix"),el=o.interopDefault(ec),eu=e("./subtitleOffsetMix"),ep=o.interopDefault(eu),ef=e("./airplayMix"),ed=o.interopDefault(ef),eh=e("./qualityMix"),em=o.interopDefault(eh),ev=e("./thumbnailsMix"),eg=o.interopDefault(ev),eb=e("./optionInit"),ey=o.interopDefault(eb),ej=e("./eventInit"),e_=o.interopDefault(ej),ew=function e(t){"use strict";(0,a._)(this,e),(0,i.default)(t),(0,l.default)(t),(0,p.default)(t),(0,d.default)(t),(0,m.default)(t),(0,g.default)(t),(0,y.default)(t),(0,_.default)(t),(0,x.default)(t),(0,S.default)(t),(0,E.default)(t),(0,P.default)(t),(0,C.default)(t),(0,O.default)(t),(0,D.default)(t),(0,R.default)(t),(0,z.default)(t),(0,q.default)(t),(0,N.default)(t),(0,B.default)(t),(0,U.default)(t),(0,X.default)(t),(0,K.default)(t),(0,Q.default)(t),(0,et.default)(t),(0,en.default)(t),(0,ea.default)(t),(0,ei.default)(t),(0,el.default)(t),(0,ep.default)(t),(0,ed.default)(t),(0,em.default)(t),(0,eg.default)(t),(0,e_.default)(t),(0,ey.default)(t)}},{"@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","./urlMix":"brLGH","./attrMix":"4Gijp","./playMix":"TkS1b","./pauseMix":"6FrK0","./toggleMix":"ljXwE","./seekMix":"eXltp","./volumeMix":"2MkGB","./currentTimeMix":"3zu0H","./durationMix":"7DsNV","./switchMix":"iNRLI","./playbackRateMix":"gaUXG","./aspectRatioMix":"bliBr","./screenshotMix":"a0vr8","./fullscreenMix":"kxdxR","./fullscreenWebMix":"7gzYH","./pipMix":"5Q3PD","./loadedMix":"300dZ","./playedMix":"93dbl","./playingMix":"pmxRE","./autoSizeMix":"lwSCQ","./rectMix":"9vxAy","./flipMix":"h4E38","./miniMix":"bd6Da","./posterMix":"1MBAA","./autoHeightMix":"ktUvk","./cssVarMix":"iJjzq","./themeMix":"3U8gV","./typeMix":"699Bq","./stateMix":"9MC3x","./subtitleOffsetMix":"doLuv","./airplayMix":"1tHnW","./qualityMix":"2kVAq","./thumbnailsMix":"aPNcx","./optionInit":"l0xd8","./eventInit":"1WIo5","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],brLGH:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t=e.option,r=e.template.$video;(0,i.def)(e,"url",{get:function(){return r.src},set:function(n){return(0,a._)(function(){var o,a,c;return(0,s._)(this,function(s){switch(s.label){case 0:if(!n)return[3,4];if(o=e.url,a=t.type||(0,i.getExt)(n),c=t.customType[a],!(a&&c))return[3,2];return[4,(0,i.sleep)()];case 1:return s.sent(),e.loading.show=!0,c.call(e,r,n,e),[3,3];case 2:URL.revokeObjectURL(o),r.src=n,s.label=3;case 3:return o!==e.url&&(e.option.url=n,e.isReady&&o&&e.once("video:canplay",function(){e.emit("restart",n)})),[3,6];case 4:return[4,(0,i.sleep)()];case 5:s.sent(),e.loading.show=!0,s.label=6;case 6:return[2]}})})()}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"4ElRo":[function(e,t,r,n){"use strict";function o(e,t,r,n,o,a,s){try{var i=e[a](s),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var s=e.apply(t,r);function i(e){o(s,n,a,i,c,"next",e)}function c(e){o(s,n,a,i,c,"throw",e)}i(void 0)})}}},{}],a4h1C:[function(e,t,r,n){"use strict";r._=e("3d8e14b4b7163380").__generator},{"3d8e14b4b7163380":"36MWs"}],"36MWs":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"__extends",function(){return i}),o.export(r,"__assign",function(){return c}),o.export(r,"__rest",function(){return l}),o.export(r,"__decorate",function(){return u}),o.export(r,"__param",function(){return p}),o.export(r,"__esDecorate",function(){return f}),o.export(r,"__runInitializers",function(){return d}),o.export(r,"__propKey",function(){return h}),o.export(r,"__setFunctionName",function(){return m}),o.export(r,"__metadata",function(){return v}),o.export(r,"__awaiter",function(){return g}),o.export(r,"__generator",function(){return b}),o.export(r,"__createBinding",function(){return y}),o.export(r,"__exportStar",function(){return j}),o.export(r,"__values",function(){return _}),o.export(r,"__read",function(){return w}),o.export(r,"__spread",function(){return x}),o.export(r,"__spreadArrays",function(){return k}),o.export(r,"__spreadArray",function(){return S}),o.export(r,"__await",function(){return T}),o.export(r,"__asyncGenerator",function(){return E}),o.export(r,"__asyncDelegator",function(){return I}),o.export(r,"__asyncValues",function(){return P}),o.export(r,"__makeTemplateObject",function(){return M}),o.export(r,"__importStar",function(){return O}),o.export(r,"__importDefault",function(){return A}),o.export(r,"__classPrivateFieldGet",function(){return D}),o.export(r,"__classPrivateFieldSet",function(){return L}),o.export(r,"__classPrivateFieldIn",function(){return R}),o.export(r,"__addDisposableResource",function(){return $}),o.export(r,"__disposeResources",function(){return V}),o.export(r,"__rewriteRelativeImportExtension",function(){return q});var a=e("@swc/helpers/cjs/_type_of.cjs"),s=function(e,t){return(s=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)};function i(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var c=function(){return(c=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function u(e,t,r,n){var o,s=arguments.length,i=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(("undefined"==typeof Reflect?"undefined":(0,a._)(Reflect))==="object"&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i}function p(e,t){return function(r,n){t(r,n,e)}}function f(e,t,r,n,o,s){function i(e){if(void 0!==e&&"function"!=typeof e)throw TypeError("Function expected");return e}for(var c,l=n.kind,u="getter"===l?"get":"setter"===l?"set":"value",p=!t&&e?n.static?e:e.prototype:null,f=t||(p?Object.getOwnPropertyDescriptor(p,n.name):{}),d=!1,h=r.length-1;h>=0;h--){var m={};for(var v in n)m[v]="access"===v?{}:n[v];for(var v in n.access)m.access[v]=n.access[v];m.addInitializer=function(e){if(d)throw TypeError("Cannot add initializers after decoration has completed");s.push(i(e||null))};var g=(0,r[h])("accessor"===l?{get:f.get,set:f.set}:f[u],m);if("accessor"===l){if(void 0===g)continue;if(null===g||(void 0===g?"undefined":(0,a._)(g))!=="object")throw TypeError("Object expected");(c=i(g.get))&&(f.get=c),(c=i(g.set))&&(f.set=c),(c=i(g.init))&&o.unshift(c)}else(c=i(g))&&("field"===l?o.unshift(c):f[u]=c)}p&&Object.defineProperty(p,n.name,f),d=!0}function d(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function w(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)s.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return s}function x(){for(var e=[],t=0;t1||i(e,t)})},t&&(n[e]=t(n[e])))}function i(e,t){try{var r;(r=o[e](t)).value instanceof T?Promise.resolve(r.value.v).then(c,l):u(a[0][2],r)}catch(e){u(a[0][3],e)}}function c(e){i("next",e)}function l(e){i("throw",e)}function u(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}}function I(e){var t,r;return t={},n("next"),n("throw",function(e){throw e}),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:T(e[n](t)),done:!1}:o?o(t):t}:o}}function P(e){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=_(e),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise(function(n,o){var a,s,i;a=n,s=o,i=(t=e[r](t)).done,Promise.resolve(t.value).then(function(e){a({value:e,done:i})},s)})}}}function M(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},F=function(e){return(F=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t})(e)};function O(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=F(e),n=0;nu?((0,a.setStyle)(o,"width","".concat(u*l,"px")),(0,a.setStyle)(o,"height","100%"),(0,a.setStyle)(o,"margin","0 auto")):((0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","".concat(c/u,"px")),(0,a.setStyle)(o,"margin","auto 0")),s.dataset.aspectRatio=n}r.show="".concat(t.get("Aspect Ratio"),": ").concat("default"===n?t.get("Default"):n),e.emit("aspectRatio",n)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a0vr8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../utils");function c(e){var t,r=e.notice,n=e.template.$video,o=(0,i.createElement)("canvas");(0,i.def)(e,"getDataURL",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),e(o.toDataURL("image/png"))}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"getBlobUrl",{value:function(){return new Promise(function(e,t){try{o.width=n.videoWidth,o.height=n.videoHeight,o.getContext("2d").drawImage(n,0,0),o.toBlob(function(t){e(URL.createObjectURL(t))})}catch(e){r.show=e,t(e)}})}}),(0,i.def)(e,"screenshot",{value:(t=(0,a._)(function(t){var r,o;return(0,s._)(this,function(a){switch(a.label){case 0:return[4,e.getDataURL()];case 1:return r=a.sent(),o=t||"artplayer_".concat((0,i.secondToTime)(n.currentTime)),(0,i.download)(r,"".concat(o,".png")),e.emit("screenshot",r),[2,r]}})}),function(e){return t.apply(this,arguments)})})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kxdxR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../libs/screenfull"),c=o.interopDefault(i),l=e("../utils");function u(e){var t=e.i18n,r=e.notice,n=e.template,o=n.$video,i=n.$player,u=function(e){c.default.on("change",function(){e.emit("fullscreen",c.default.isFullscreen),c.default.isFullscreen?(e.state="fullscreen",(0,l.addClass)(i,"art-fullscreen")):(0,l.removeClass)(i,"art-fullscreen"),e.emit("resize")}),c.default.on("error",function(t){e.emit("fullscreenError",t)}),(0,l.def)(e,"fullscreen",{get:function(){return c.default.isFullscreen},set:function(e){return(0,a._)(function(){return(0,s._)(this,function(t){switch(t.label){case 0:if(!e)return[3,2];return[4,c.default.request(i)];case 1:return t.sent(),[3,4];case 2:return[4,c.default.exit()];case 3:t.sent(),t.label=4;case 4:return[2]}})})()}})},p=function(e){e.proxy(document,"webkitfullscreenchange",function(){e.emit("fullscreen",e.fullscreen),e.emit("resize")}),(0,l.def)(e,"fullscreen",{get:function(){return document.fullscreenElement===o},set:function(t){t?(e.state="fullscreen",o.webkitEnterFullscreen()):o.webkitExitFullscreen()}})};e.once("video:loadedmetadata",function(){c.default.isEnabled?u(e):o.webkitSupportsFullscreen?p(e):(0,l.def)(e,"fullscreen",{get:function(){return!1},set:function(){r.show=t.get("Fullscreen Not Supported")}}),(0,l.def)(e,"fullscreen",(0,l.get)(e,"fullscreen"))})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../libs/screenfull":"6Yfu0","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"6Yfu0":[function(e,t,r,n){e("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r);var o=e("@swc/helpers/cjs/_sliced_to_array.cjs"),a=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],s=function(){if("undefined"==typeof document)return!1;var e=a[0],t={},r=!0,n=!1,s=void 0;try{for(var i,c=a[Symbol.iterator]();!(r=(i=c.next()).done);r=!0){var l=i.value;if(l[1]in document){var u=!0,p=!1,f=void 0;try{for(var d,h=l.entries()[Symbol.iterator]();!(u=(d=h.next()).done);u=!0){var m=(0,o._)(d.value,2),v=m[0],g=m[1];t[e[v]]=g}}catch(e){p=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(p)throw f}}return t}}}catch(e){n=!0,s=e}finally{try{r||null==c.return||c.return()}finally{if(n)throw s}}return!1}(),i={change:s.fullscreenchange,error:s.fullscreenerror},c={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.documentElement,t=arguments.length>1?arguments[1]:void 0;return new Promise(function(r,n){var o=function(){c.off("change",o),r()};c.on("change",o);var a=e[s.requestFullscreen](t);a instanceof Promise&&a.then(o).catch(n)})},exit:function(){return new Promise(function(e,t){if(!c.isFullscreen)return void e();var r=function(){c.off("change",r),e()};c.on("change",r);var n=document[s.exitFullscreen]();n instanceof Promise&&n.then(r).catch(t)})},toggle:function(e,t){return c.isFullscreen?c.exit():c.request(e,t)},onchange:function(e){c.on("change",e)},onerror:function(e){c.on("error",e)},on:function(e,t){var r=i[e];r&&document.addEventListener(r,t,!1)},off:function(e,t){var r=i[e];r&&document.removeEventListener(r,t,!1)},raw:s};Object.defineProperties(c,{isFullscreen:{get:function(){return!!document[s.fullscreenElement]}},element:{enumerable:!0,get:function(){return document[s.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return!!document[s.fullscreenEnabled]}}}),s||(c={isEnabled:!1}),r.default=c},{"@swc/helpers/cjs/_sliced_to_array.cjs":"69dwW","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"69dwW":[function(e,t,r,n){"use strict";var o=e("1c05c980d01d7095"),a=e("d604d0840046159b"),s=e("9ac1542249932d1a"),i=e("d04f777c592843b");r._=function(e,t){return o._(e)||a._(e,t)||i._(e,t)||s._()}},{"1c05c980d01d7095":"dgv90",d604d0840046159b:"8f1n5","9ac1542249932d1a":"edvMI",d04f777c592843b:"ikxEb"}],dgv90:[function(e,t,r,n){"use strict";r._=function(e){if(Array.isArray(e))return e}},{}],"8f1n5":[function(e,t,r,n){"use strict";r._=function(e,t){var r,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],s=!0,i=!1;try{for(o=o.call(e);!(s=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){i=!0,n=e}finally{try{s||null==o.return||o.return()}finally{if(i)throw n}}return a}}},{}],edvMI:[function(e,t,r,n){"use strict";r._=function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},{}],"7gzYH":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.template,n=r.$container,o=r.$player,s="";(0,a.def)(e,"fullscreenWeb",{get:function(){return(0,a.hasClass)(o,"art-fullscreen-web")},set:function(r){r?(s=o.style.cssText,t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(document.body,o),e.state="fullscreenWeb",(0,a.setStyle)(o,"width","100%"),(0,a.setStyle)(o,"height","100%"),(0,a.addClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!0)):(t.FULLSCREEN_WEB_IN_BODY&&(0,a.append)(n,o),s&&(o.style.cssText=s,s=""),(0,a.removeClass)(o,"art-fullscreen-web"),e.emit("fullscreenWeb",!1)),e.emit("resize")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"5Q3PD":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t,r,n,o,s=e.i18n,i=e.notice,c=e.template.$video;document.pictureInPictureEnabled?(t=e.template.$video,r=e.proxy,n=e.notice,t.disablePictureInPicture=!1,(0,a.def)(e,"pip",{get:function(){return document.pictureInPictureElement},set:function(r){r?(e.state="pip",t.requestPictureInPicture().catch(function(e){throw n.show=e,e})):document.exitPictureInPicture().catch(function(e){throw n.show=e,e})}}),r(t,"enterpictureinpicture",function(){e.emit("pip",!0)}),r(t,"leavepictureinpicture",function(){e.emit("pip",!1)})):c.webkitSupportsPresentationMode?((o=e.template.$video).webkitSetPresentationMode("inline"),(0,a.def)(e,"pip",{get:function(){return"picture-in-picture"===o.webkitPresentationMode},set:function(t){t?(e.state="pip",o.webkitSetPresentationMode("picture-in-picture"),e.emit("pip",!0)):(o.webkitSetPresentationMode("inline"),e.emit("pip",!1))}})):(0,a.def)(e,"pip",{get:function(){return!1},set:function(){i.show=s.get("PIP Not Supported")}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"300dZ":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"loaded",{get:function(){return e.loadedTime/t.duration}}),(0,a.def)(e,"loadedTime",{get:function(){return t.buffered.length?t.buffered.end(t.buffered.length-1):0}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"93dbl":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"played",{get:function(){return e.currentTime/e.duration}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],pmxRE:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$video;(0,a.def)(e,"playing",{get:function(){return"boolean"==typeof t.playing?t.playing:!!(t.currentTime>0&&!t.paused&&!t.ended&&t.readyState>2)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lwSCQ:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$player,o=t.$video;(0,a.def)(e,"autoSize",{value:function(){var t=o.videoWidth,s=o.videoHeight,i=(0,a.getRect)(r),c=i.width,l=i.height,u=t/s;c/l>u?((0,a.setStyle)(n,"width","".concat(l*u/c*100,"%")),(0,a.setStyle)(n,"height","100%")):((0,a.setStyle)(n,"width","100%"),(0,a.setStyle)(n,"height","".concat(c/u/l*100,"%"))),e.emit("autoSize",{width:e.width,height:e.height})}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9vxAy":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"rect",{get:function(){return(0,a.getRect)(e.template.$player)}});for(var t=["bottom","height","left","right","top","width"],r=0;r');(0,a.append)(d,t.close),r(d,"click",p);var h=(0,a.append)(s,'
'),m=(0,a.append)(h,t.play),v=(0,a.append)(h,t.pause);return r(m,"click",function(){return e.play()}),r(v,"click",function(){return e.pause()}),f(m,v),e.on("video:playing",function(){return f(m,v)}),e.on("video:pause",function(){return f(m,v)}),e.on("video:timeupdate",function(){return f(m,v)}),r(s,"mousedown",function(e){c=0===e.button,l=e.pageX,u=e.pageY}),e.on("document:mousemove",function(e){if(c){(0,a.addClass)(s,"art-mini-dragging");var t=e.pageX-l,r=e.pageY-u;(0,a.setStyle)(s,"transform","translate(".concat(t,"px, ").concat(r,"px)"))}}),e.on("document:mouseup",function(){if(c){c=!1,(0,a.removeClass)(s,"art-mini-dragging");var e=(0,a.getRect)(s);n.set("left",e.left),n.set("top",e.top),(0,a.setStyle)(s,"left","".concat(e.left,"px")),(0,a.setStyle)(s,"top","".concat(e.top,"px")),(0,a.setStyle)(s,"transform",null)}}),s}(),m=n.get("top"),v=n.get("left");"number"==typeof m&&"number"==typeof v?((0,a.setStyle)(h,"top","".concat(m,"px")),(0,a.setStyle)(h,"left","".concat(v,"px")),(0,a.isInViewport)(h)||d()):d(),e.emit("mini",!0)}else p()}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1MBAA":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$poster;(0,a.def)(e,"poster",{get:function(){try{return t.style.backgroundImage.match(/"(.*)"/)[1]}catch(e){return""}},set:function(e){(0,a.setStyle)(t,"backgroundImage","url(".concat(e,")"))}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ktUvk:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template,r=t.$container,n=t.$video;(0,a.def)(e,"autoHeight",{value:function(){var t=r.clientWidth,o=n.videoHeight,s=t/n.videoWidth*o;(0,a.setStyle)(r,"height",s+"px"),e.emit("autoHeight",s)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],iJjzq:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.template.$player;(0,a.def)(e,"cssVar",{value:function(e,r){return r?t.style.setProperty(e,r):getComputedStyle(t).getPropertyValue(e)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"3U8gV":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"theme",{get:function(){return e.cssVar("--art-theme")},set:function(t){e.cssVar("--art-theme",t)}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"699Bq":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){(0,a.def)(e,"type",{get:function(){return e.option.type},set:function(t){e.option.type=t}})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"9MC3x":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=["mini","pip","fullscreen","fullscreenWeb"];(0,a.def)(e,"state",{get:function(){return t.find(function(t){return e[t]})||"standard"},set:function(r){for(var n=0;n0&&jc.clientWidth-m/2?(0,i.setStyle)(o,"left","".concat(c.clientWidth-m,"px")):(0,i.setStyle)(o,"left","".concat(t-m/2,"px"))}}(j):i.isMobile||(0,i.setStyle)(m,"display","none"),y&&(clearTimeout(u),u=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500)),s.label=3;case 3:return[2]}})}),function(e,r,n){return t.apply(this,arguments)})),(0,i.def)(e,"thumbnails",{get:function(){return e.option.thumbnails},set:function(t){t.url&&!e.option.isLive&&(e.option.thumbnails=t,clearTimeout(u),u=null,p=null,f=!1,d=!1)}})}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],l0xd8:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.option,r=e.storage,n=e.template,o=n.$video,s=n.$poster;for(var i in t.moreVideoAttr)e.attr(i,t.moreVideoAttr[i]);t.muted&&(e.muted=t.muted),t.volume&&(o.volume=(0,a.clamp)(t.volume,0,1));var c=r.get("volume");for(var l in"number"==typeof c&&(o.volume=(0,a.clamp)(c,0,1)),t.poster&&(0,a.setStyle)(s,"backgroundImage","url(".concat(t.poster,")")),t.autoplay&&(o.autoplay=t.autoplay),t.playsInline&&(o.playsInline=!0,o["webkit-playsinline"]=!0),t.theme&&(t.cssVar["--art-theme"]=t.theme),t.cssVar)e.cssVar(l,t.cssVar[l]);e.url=t.url}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"1WIo5":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return u});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_ts_generator.cjs"),i=e("../config"),c=o.interopDefault(i),l=e("../utils");function u(e){for(var t,r=e.i18n,n=e.notice,o=e.option,i=e.constructor,u=e.proxy,p=e.template,f=p.$player,d=p.$video,h=p.$poster,m=0,v=0;v=n.CONTROL_HIDE_TIME&&(r.show=!1)}),e.on("control",function(e){e?((0,D.removeClass)(a,"art-hide-cursor"),(0,D.addClass)(a,"art-hover"),r.timer=Date.now()):((0,D.addClass)(a,"art-hide-cursor"),(0,D.removeClass)(a,"art-hover"))}),r.init(),r}return(0,p._)(t,e),(0,c._)(t,[{key:"init",value:function(){var e=this,t=this.art.option;t.isLive||this.add((0,k.default)({name:"progress",position:"top",index:10})),this.add({name:"thumbnails",position:"top",index:20}),this.add((0,w.default)({name:"playAndPause",position:"left",index:10})),this.add((0,I.default)({name:"volume",position:"left",index:20})),t.isLive||this.add((0,T.default)({name:"time",position:"left",index:30})),t.quality.length&&(0,D.sleep)().then(function(){e.art.quality=t.quality}),t.screenshot&&!D.isMobile&&this.add((0,F.default)({name:"screenshot",position:"right",index:20})),t.setting&&this.add((0,M.default)({name:"setting",position:"right",index:30})),t.pip&&this.add((0,j.default)({name:"pip",position:"right",index:40})),t.airplay&&window.WebKitPlaybackTargetAvailabilityEvent&&this.add((0,A.default)({name:"airplay",position:"right",index:50})),t.fullscreenWeb&&this.add((0,b.default)({name:"fullscreenWeb",position:"right",index:60})),t.fullscreen&&this.add((0,v.default)({name:"fullscreen",position:"right",index:70}));for(var r=0;r=Number(a.dataset.index)});l?l.insertAdjacentElement("beforebegin",a):(0,i.append)(this.$parent,a),r.html&&(0,i.append)(a,r.html),r.style&&(0,i.setStyles)(a,r.style),r.tooltip&&(0,i.tooltip)(a,r.tooltip);var f=[];if(r.click){var d=this.art.events.proxy(a,"click",function(e){e.preventDefault(),r.click.call(t.art,t,e)});f.push(d)}return r.selector&&["left","right"].includes(r.position)&&this.selector(r,a,f),this[n]=a,this.cache.set(n,{$ref:a,events:f,option:r}),r.mounted&&r.mounted.call(this.art,a),a}}},{key:"remove",value:function(e){var t=this.cache.get(e);(0,c.errorHandle)(t,"Can't find [".concat(e,"] from the [").concat(this.name,"]")),t.option.beforeUnmount&&t.option.beforeUnmount.call(this.art,t.$ref);for(var r=0;r\n
\n
\n
\n
\n
\n
\n\n ',mounted:function(e){var a=null,s=!1,u=(0,i.query)(".art-progress-hover",e),p=(0,i.query)(".art-progress-loaded",e),f=(0,i.query)(".art-progress-played",e),d=(0,i.query)(".art-progress-highlight",e),h=(0,i.query)(".art-progress-indicator",e),m=(0,i.query)(".art-progress-tip",e);function v(r,n){var o=n||c(t,r),a=o.width;m.innerText=o.time;var s=m.clientWidth;a<=s/2?(0,i.setStyle)(m,"left",0):a>e.clientWidth-s/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-s,"px")):(0,i.setStyle)(m,"left","".concat(a-s/2,"px"))}r.indicator?(0,i.append)(h,r.indicator):(0,i.setStyle)(h,"backgroundColor","var(--art-theme)"),t.on("setBar",function(r,n,o){var s="played"===r&&o&&i.isMobile;"loaded"===r&&(0,i.setStyle)(p,"width","".concat(100*n,"%")),"hover"===r&&(0,i.setStyle)(u,"width","".concat(100*n,"%")),"played"===r&&((0,i.setStyle)(f,"width","".concat(100*n,"%")),(0,i.setStyle)(h,"left","".concat(100*n,"%"))),s&&((0,i.setStyle)(m,"display","flex"),v(o,{width:e.clientWidth*n,time:(0,i.secondToTime)(n*t.duration)}),clearTimeout(a),a=setTimeout(function(){(0,i.setStyle)(m,"display","none")},500))}),t.on("video:loadedmetadata",function(){d.innerText="";for(var e=0;e');(0,i.append)(d,a)}}),t.constructor.USE_RAF?t.on("raf",function(){t.emit("setBar","played",t.played),t.emit("setBar","loaded",t.loaded)}):(t.on("video:timeupdate",function(){t.emit("setBar","played",t.played)}),t.on("video:progress",function(){t.emit("setBar","loaded",t.loaded)}),t.on("video:ended",function(){t.emit("setBar","played",1)})),t.emit("setBar","loaded",t.loaded||0),i.isMobile||(o(e,"click",function(e){e.target!==h&&l(t,e)}),o(e,"mousemove",function(r){var n,o,a=c(t,r).percentage;(t.emit("setBar","hover",a,r),(0,i.setStyle)(m,"display","flex"),(0,i.includeFromEvent)(r,d))?(n=c(t,r).width,m.innerText=r.target.dataset.text,n<=(o=m.clientWidth)/2?(0,i.setStyle)(m,"left",0):n>e.clientWidth-o/2?(0,i.setStyle)(m,"left","".concat(e.clientWidth-o,"px")):(0,i.setStyle)(m,"left","".concat(n-o/2,"px"))):v(r)}),o(e,"mouseleave",function(e){(0,i.setStyle)(m,"display","none"),t.emit("setBar","hover",0,e)}),o(e,"mousedown",function(e){s=0===e.button}),t.on("document:mousemove",function(e){if(s){var r=c(t,e),n=r.second,o=r.percentage;t.emit("setBar","played",o,e),t.seek=n}}),t.on("document:mouseup",function(){s&&(s=!1)}))}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],goLby:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{style:i.isMobile?{fontSize:"12px",padding:"0 5px"}:{cursor:"auto",padding:"0 10px"},mounted:function(e){function r(){var r="".concat((0,i.secondToTime)(t.currentTime)," / ").concat((0,i.secondToTime)(t.duration));r!==e.innerText&&(e.innerText=r)}r();for(var n=["video:loadedmetadata","video:timeupdate","video:progress"],o=0;o'),c=(0,i.append)(s,'
'),l=(0,i.append)(c,'
'),u=(0,i.append)(c,'
'),p=(0,i.append)(u,'
'),f=(0,i.append)(p,'
'),d=(0,i.append)(u,'
');function h(e){var t=(0,i.getRect)(u),r=t.top,n=t.height;return 1-(e.clientY-r)/n}function m(){if(t.muted||0===t.volume)(0,i.setStyle)(o,"display","none"),(0,i.setStyle)(a,"display","flex"),(0,i.setStyle)(d,"top","100%"),(0,i.setStyle)(f,"top","100%"),l.innerText=0;else{var e=100*t.volume;(0,i.setStyle)(o,"display","flex"),(0,i.setStyle)(a,"display","none"),(0,i.setStyle)(d,"top","".concat(100-e,"%")),(0,i.setStyle)(f,"top","".concat(100-e,"%")),l.innerText=Math.floor(e)}}if(m(),t.on("video:volumechange",m),r(o,"click",function(){t.muted=!0}),r(a,"click",function(){t.muted=!1}),i.isMobile)(0,i.setStyle)(s,"display","none");else{var v=!1;r(u,"mousedown",function(e){v=0===e.button,t.volume=h(e)}),t.on("document:mousemove",function(e){v&&(t.muted=!1,t.volume=h(e))}),t.on("document:mouseup",function(){v&&(v=!1)})}}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],kKnPP:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Show Setting"),mounted:function(e){var r=t.proxy,n=t.icons,o=t.i18n;(0,i.append)(e,n.setting),r(e,"click",function(){t.setting.toggle(),t.setting.resize()}),t.on("setting",function(t){(0,i.tooltip)(e,o.get(t?"Hide Setting":"Show Setting"))})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aeKuL:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("Screenshot"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.screenshot),r(e,"click",function(){t.screenshot()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8aY0p":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){return(0,s._)((0,a._)({},e),{tooltip:t.i18n.get("AirPlay"),mounted:function(e){var r=t.proxy,n=t.icons;(0,i.append)(e,n.airplay),r(e,"click",function(){return t.airplay()})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dM9Mf:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return k});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("../utils"),u=e("../utils/component"),p=o.interopDefault(u),f=e("./playbackRate"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./flip"),g=o.interopDefault(v),b=e("./info"),y=o.interopDefault(b),j=e("./version"),_=o.interopDefault(j),w=e("./close"),x=o.interopDefault(w),k=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="contextmenu",r.$parent=e.template.$contextmenu,l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.option,n=t.proxy,o=t.template,a=o.$player,s=o.$contextmenu;r.playbackRate&&this.add((0,d.default)({name:"playbackRate",index:10})),r.aspectRatio&&this.add((0,m.default)({name:"aspectRatio",index:20})),r.flip&&this.add((0,g.default)({name:"flip",index:30})),this.add((0,y.default)({name:"info",index:40})),this.add((0,_.default)({name:"version",index:50})),this.add((0,x.default)({name:"close",index:60}));for(var i=0;iu+c&&(m=c-h),n+d>p+i&&(v=i-d),(0,l.setStyles)(s,{top:"".concat(v,"px"),left:"".concat(m,"px")})}}),n(a,"click",function(t){(0,l.includeFromEvent)(t,s)||(e.show=!1)}),this.art.on("blur",function(){e.show=!1})}}]),t}(p.default)},{"@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","../utils":"b2ThP","../utils/component":"axpVu","./playbackRate":"61GCm","./aspectRatio":"8m4GN","./flip":"ex4Tx","./info":"8zP29","./version":"aOnFp","./close":"hCr2L","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"61GCm":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.PLAYBACK_RATE.map(function(e){return'').concat(1===e?r.get("Normal"):e.toFixed(1),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Play Speed"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.playbackRate=Number(n),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="1"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("video:ratechange",function(){var r=(0,i.queryAll)("span",e).find(function(e){return Number(e.dataset.value)===t.playbackRate});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8m4GN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.ASPECT_RATIO.map(function(e){return'').concat("default"===e?r.get("Default"):e,"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Aspect Ratio"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.aspectRatio=n,e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="default"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("aspectRatio",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ex4Tx:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../utils");function c(e){return function(t){var r=t.i18n,n=t.constructor.FLIP.map(function(e){return'').concat(r.get((0,i.capitalize)(e)),"")}).join("");return(0,s._)((0,a._)({},e),{html:"".concat(r.get("Video Flip"),": ").concat(n),click:function(e,r){var n=r.target.dataset.value;n&&(t.flip=n.toLowerCase(),e.show=!1)},mounted:function(e){var r=(0,i.query)('[data-value="normal"]',e);r&&(0,i.inverseClass)(r,"art-current"),t.on("flip",function(t){var r=(0,i.queryAll)("span",e).find(function(e){return e.dataset.value===t});r&&(0,i.inverseClass)(r,"art-current")})}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8zP29":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Video Info"),click:function(e){t.info.show=!0,e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],aOnFp:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return function(e){return(0,s._)((0,a._)({},e),{html:'ArtPlayer '.concat(i.version,"")})}});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs"),i=e("../../package.json")},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","../../package.json":"7XQup","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],hCr2L:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return i});var a=e("@swc/helpers/cjs/_object_spread.cjs"),s=e("@swc/helpers/cjs/_object_spread_props.cjs");function i(e){return function(t){return(0,s._)((0,a._)({},e),{html:t.i18n.get("Close"),click:function(e){e.show=!1}})}}},{"@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],jcSTc:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return p});var a=e("@swc/helpers/cjs/_call_super.cjs"),s=e("@swc/helpers/cjs/_class_call_check.cjs"),i=e("@swc/helpers/cjs/_create_class.cjs"),c=e("@swc/helpers/cjs/_inherits.cjs"),l=e("./utils"),u=e("./utils/component"),p=function(e){"use strict";function t(e){var r;return(0,s._)(this,t),(r=(0,a._)(this,t,[e])).name="info",l.isMobile||r.init(),r}return(0,c._)(t,e),(0,i._)(t,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor,o=t.template,a=o.$infoPanel,s=o.$infoClose,i=o.$video;r(s,"click",function(){e.show=!1});var c=null,u=(0,l.queryAll)("[data-video]",a)||[];this.art.on("destroy",function(){return clearTimeout(c)}),!function e(){for(var t=0;t\n ').concat(t.escape?(0,h.escape)(e):e,"\n")}).join("")}).join(""),this.art.emit("subtitleAfterUpdate",this.activeCues))}},{key:"switch",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this;return(0,a._)(function(){var n,o,a,s,i,c;return(0,d._)(this,function(l){switch(l.label){case 0:return o=(n=r.art).i18n,a=n.notice,s=n.option,i=(0,p._)((0,u._)({},s.subtitle,t),{url:e}),[4,r.init(i)];case 1:return c=l.sent(),t.name&&(a.show="".concat(o.get("Switch Subtitle"),": ").concat(t.name)),[2,c]}})})()}},{key:"createTrack",value:function(e,t){var r=this,n=this.art,o=n.template,a=n.proxy,s=n.option,i=o.$video,c=o.$track,l=(0,h.createElement)("track");l.default=!0,l.kind=e,l.src=t,l.label=s.subtitle.name||"Artplayer",l.track.mode="hidden",l.onload=function(){r.art.emit("subtitleLoad",r.cues,r.option)},this.art.events.remove(this.destroyEvent),c.onload=null,(0,h.remove)(c),(0,h.append)(i,l),o.$track=l,this.destroyEvent=a(this.textTrack,"cuechange",function(){return r.update()})}},{key:"init",value:function(e){var t=this;return(0,a._)(function(){var r,n,o;return(0,d._)(this,function(a){return(n=(r=t.art).notice,o=r.template.$subtitle,t.textTrack)?((0,b.default)(e,j.default.subtitle),e.url)?(t.option=e,t.style(e.style),[2,fetch(e.url).then(function(e){return e.arrayBuffer()}).then(function(t){var r=new TextDecoder(e.encoding).decode(t);switch(e.type||(0,h.getExt)(e.url)){case"srt":var n=(0,h.srtToVtt)(r),o=e.onVttLoad(n);return(0,h.vttToBlob)(o);case"ass":var a=(0,h.assToVtt)(r),s=e.onVttLoad(a);return(0,h.vttToBlob)(s);case"vtt":var i=e.onVttLoad(r);return(0,h.vttToBlob)(i);default:return e.url}}).then(function(e){return o.innerHTML="",t.url===e||(URL.revokeObjectURL(t.url),t.createTrack("metadata",e)),e}).catch(function(e){throw o.innerHTML="",n.show=e,e})]):[2]:[2,null]})})()}}]),t}(v.default)},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_call_super.cjs":"aFrVF","@swc/helpers/cjs/_class_call_check.cjs":"5Lt2s","@swc/helpers/cjs/_create_class.cjs":"fExy2","@swc/helpers/cjs/_inherits.cjs":"8c2nw","@swc/helpers/cjs/_object_spread.cjs":"7vaqr","@swc/helpers/cjs/_object_spread_props.cjs":"iJXke","@swc/helpers/cjs/_type_of.cjs":"9vrOw","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","./utils":"b2ThP","./utils/component":"axpVu","option-validator":"gfXqm","./scheme":"7A6gr","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],dq2pN:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return S});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./clickInit"),c=o.interopDefault(i),l=e("./hoverInit"),u=o.interopDefault(l),p=e("./moveInit"),f=o.interopDefault(p),d=e("./resizeInit"),h=o.interopDefault(d),m=e("./gestureInit"),v=o.interopDefault(m),g=e("./viewInit"),b=o.interopDefault(g),y=e("./documentInit"),j=o.interopDefault(y),_=e("./updateInit"),w=o.interopDefault(_),x=e("./restoreInit"),k=o.interopDefault(x),S=function(){"use strict";function e(t){(0,a._)(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),(0,c.default)(t,this),(0,u.default)(t,this),(0,f.default)(t,this),(0,h.default)(t,this),(0,v.default)(t,this),(0,b.default)(t,this),(0,j.default)(t,this),(0,w.default)(t,this),(0,k.default)(t,this)}return(0,s._)(e,[{key:"proxy",value:function(e,t,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(t))return t.map(function(t){return n.proxy(e,t,r,o)});e.addEventListener(t,r,o);var a=function(){return e.removeEventListener(t,r,o)};return this.destroyEvents.push(a),a}},{key:"hover",value:function(e,t,r){t&&this.proxy(e,"mouseenter",t),r&&this.proxy(e,"mouseleave",r)}},{key:"remove",value:function(e){var t=this.destroyEvents.indexOf(e);t>-1&&(e(),this.destroyEvents.splice(t,1))}},{key:"destroy",value:function(){for(var e=0;eMath.abs(a)&&2>Math.abs(o))return s;var i=180*Math.atan2(o,a)/Math.PI;return i>=-45&&i<45?s=4:i>=45&&i<135?s=1:i>=-135&&i<-45?s=2:(i>=135&&i<=180||i>=-180&&i<-135)&&(s=3),s}(l,u,o,s),d=[3,4].includes(f),h=[1,2].includes(f);if(d&&!e.isRotate||h&&e.isRotate){var m=(0,a.clamp)((o-l)/e.width,-1,1),v=(0,a.clamp)((s-u)/e.height,-1,1),g=e.isRotate?v:m,b=i===n?e.constructor.TOUCH_MOVE_RATIO:1,y=(0,a.clamp)(p+e.duration*g*b,0,e.duration);e.seek=y,e.emit("setBar","played",(0,a.clamp)(y/e.duration,0,1),t),e.notice.show="".concat((0,a.secondToTime)(y)," / ").concat((0,a.secondToTime)(e.duration))}}};e.option.gesture&&(t.proxy(n,"touchstart",function(e){i=n,f(e)}),t.proxy(n,"touchmove",d)),t.proxy(o,"touchstart",function(e){i=o,f(e)}),t.proxy(o,"touchmove",d),t.proxy(document,"touchend",function(){c&&(l=0,u=0,p=0,c=!1,i=null)})}}},{"../utils":"b2ThP","../control/progress":"V1ZQp","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],ejGFW:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e,t){var r=e.option,n=e.constructor,o=e.template.$container,s=(0,a.throttle)(function(){e.emit("view",(0,a.isInViewport)(o,n.SCROLL_GAP))},n.SCROLL_TIME);t.proxy(window,"scroll",function(){return s()}),e.on("view",function(t){r.autoMini&&(e.mini=!t)})}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"11fCO":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){t.proxy(document,"mousemove",function(t){e.emit("document:mousemove",t)}),t.proxy(document,"mouseup",function(t){e.emit("document:mouseup",t)})}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a6XAg:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e){if(e.constructor.USE_RAF){var t=null;!function r(){e.playing&&e.emit("raf"),e.isDestroy||(t=requestAnimationFrame(r))}(),e.on("destroy",function(){cancelAnimationFrame(t)})}}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],"8OSVw":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");function a(e,t){}o.defineInteropFlag(r),o.export(r,"default",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],bFwyD:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return c});var a=e("@swc/helpers/cjs/_class_call_check.cjs"),s=e("@swc/helpers/cjs/_create_class.cjs"),i=e("./utils"),c=function(){"use strict";function e(t){(0,a._)(this,e),this.art=t,this.keys={},t.option.hotkey&&!i.isMobile&&this.init()}return(0,s._)(e,[{key:"init",value:function(){var e=this,t=this.art,r=t.proxy,n=t.constructor;this.add("Escape",function(){e.art.fullscreenWeb&&(e.art.fullscreenWeb=!1)}),this.add("Space",function(){e.art.toggle()}),this.add("ArrowLeft",function(){e.art.backward=n.SEEK_STEP}),this.add("ArrowUp",function(){e.art.volume+=n.VOLUME_STEP}),this.add("ArrowRight",function(){e.art.forward=n.SEEK_STEP}),this.add("ArrowDown",function(){e.art.volume-=n.VOLUME_STEP}),r(document,"keydown",function(t){if(e.art.isFocus){var r=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==r&&"TEXTAREA"!==r&&""!==n&&"true"!==n&&!t.altKey&&!t.ctrlKey&&!t.metaKey&&!t.shiftKey){var o=e.keys[t.code];if(o){t.preventDefault();for(var a=0;a'},{}],pYOPx:[function(e,t,r,n){t.exports=''},{}],"9Ce7v":[function(e,t,r,n){t.exports=''},{}],jP8po:[function(e,t,r,n){t.exports=''},{}],"6qJgz":[function(e,t,r,n){t.exports=''},{}],w0y3C:[function(e,t,r,n){t.exports=''},{}],"38wNO":[function(e,t,r,n){t.exports=''},{}],"1ZHRu":[function(e,t,r,n){t.exports=''},{}],"7ow0e":[function(e,t,r,n){t.exports=''},{}],"1lkxY":[function(e,t,r,n){t.exports=''},{}],i49d6:[function(e,t,r,n){t.exports=''},{}],cmsy3:[function(e,t,r,n){t.exports=''},{}],ch53g:[function(e,t,r,n){t.exports=''},{}],"4GQVI":[function(e,t,r,n){t.exports=''},{}],fpn2n:[function(e,t,r,n){t.exports=''},{}],"7ZtmP":[function(e,t,r,n){t.exports=''},{}],"29rsS":[function(e,t,r,n){t.exports=''},{}],"1gXNA":[function(e,t,r,n){t.exports=''},{}],"1H4Nc":[function(e,t,r,n){t.exports=''},{}],ejF5C:[function(e,t,r,n){t.exports=''},{}],cSCUL:[function(e,t,r,n){t.exports=''},{}],fecYV:[function(e,t,r,n){t.exports=''},{}],"4umJD":[function(e,t,r,n){t.exports=''},{}],e9jva:[function(e,t,r,n){t.exports=''},{}],b95Il:[function(e,t,r,n){t.exports=''},{}],"2sSLq":[function(e,t,r,n){t.exports=''},{}],hliN0:[function(e,t,r,n){t.exports=''},{}],"90OCX":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return x});var a=e("@swc/helpers/cjs/_async_to_generator.cjs"),s=e("@swc/helpers/cjs/_call_super.cjs"),i=e("@swc/helpers/cjs/_class_call_check.cjs"),c=e("@swc/helpers/cjs/_create_class.cjs"),l=e("@swc/helpers/cjs/_inherits.cjs"),u=e("@swc/helpers/cjs/_to_consumable_array.cjs"),p=e("@swc/helpers/cjs/_ts_generator.cjs"),f=e("./flip"),d=o.interopDefault(f),h=e("./aspectRatio"),m=o.interopDefault(h),v=e("./playbackRate"),g=o.interopDefault(v),b=e("./subtitleOffset"),y=o.interopDefault(b),j=e("../utils/component"),_=o.interopDefault(j),w=e("../utils"),x=function(e){"use strict";function t(e){(0,i._)(this,t);var r=(0,s._)(this,t,[e]),n=e.option,o=e.controls,a=e.template.$setting;return r.name="setting",r.$parent=a,r.id=0,r.active=null,r.cache=new Map,r.option=(0,u._)(r.builtin).concat((0,u._)(n.settings)),n.setting&&(r.format(),r.render(),e.on("blur",function(){r.show&&(r.show=!1,r.render())}),e.on("focus",function(e){var t=(0,w.includeFromEvent)(e,o.setting),n=(0,w.includeFromEvent)(e,r.$parent);!r.show||t||n||(r.show=!1,r.render())}),e.on("resize",function(){return r.resize()})),r}return(0,l._)(t,e),(0,c._)(t,[{key:"builtin",get:function(){var e=[],t=this.art.option;return t.playbackRate&&e.push((0,g.default)(this.art)),t.aspectRatio&&e.push((0,m.default)(this.art)),t.flip&&e.push((0,d.default)(this.art)),t.subtitleOffset&&e.push((0,y.default)(this.art)),e}},{key:"traverse",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.option,r=0;r0&&void 0!==arguments[0]?arguments[0]:this.option,r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=0;a0&&void 0!==arguments[0]?arguments[0]:"",t=null;return this.traverse(function(r){r.name===e&&(t=r)}),t}},{key:"resize",value:function(){var e=this.art,t=e.controls,r=e.constructor,n=r.SETTING_WIDTH,o=r.SETTING_ITEM_HEIGHT,a=e.template,s=a.$player,i=a.$setting;if(t.setting&&this.show){var c,l,u=(null==(l=this.active[0])||null==(c=l.$parent)?void 0:c.width)||n,p=(0,w.getRect)(t.setting),f=p.left,d=p.width,h=(0,w.getRect)(s),m=h.left,v=h.width,g=f-m+d/2-u/2,b=this.active===this.option?this.active.length*o:(this.active.length+1)*o;if((0,w.setStyle)(i,"height","".concat(b,"px")),(0,w.setStyle)(i,"width","".concat(u,"px")),this.art.isRotate||w.isMobile)return;g+u>v?((0,w.setStyle)(i,"left",null),(0,w.setStyle)(i,"right",null)):((0,w.setStyle)(i,"left","".concat(g,"px")),(0,w.setStyle)(i,"right","auto"))}}},{key:"inactivate",value:function(e){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:this.option;return t.push(e),this.format(),this.createItem(e),this.render(),e}},{key:"createHeader",value:function(e){var t=this;if(this.cache.has(e.$option)){var r=this.cache.get(e.$option),n=this.art,o=n.proxy,a=n.icons.arrowLeft,s=n.constructor.SETTING_ITEM_HEIGHT,i=(0,w.createElement)("div");(0,w.setStyle)(i,"height","".concat(s,"px")),(0,w.addClass)(i,"art-setting-item"),(0,w.addClass)(i,"art-setting-item-back");var c=(0,w.append)(i,'
'),l=(0,w.createElement)("div");(0,w.addClass)(l,"art-setting-item-left-icon"),(0,w.append)(l,a),(0,w.append)(c,l),(0,w.append)(c,e.$parent.html);var u=o(i,"click",function(){return t.render(e.$parents)});e.$parent.$events.push(u),(0,w.append)(r,i)}}},{key:"createItem",value:function(e){var t,r,n=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.cache.has(e.$option)){var s=this.cache.get(e.$option),i=e.$item,c="selector";(0,w.has)(e,"switch")&&(c="switch"),(0,w.has)(e,"range")&&(c="range"),(0,w.has)(e,"onClick")&&(c="button");var l=this.art,f=l.icons,d=l.proxy,h=l.constructor,m=(0,w.createElement)("div");(0,w.addClass)(m,"art-setting-item"),(0,w.setStyle)(m,"height","".concat(h.SETTING_ITEM_HEIGHT,"px")),m.dataset.name=e.name||"",m.dataset.value=e.value||"";var v=(0,w.append)(m,'
'),g=(0,w.append)(m,'
'),b=(0,w.createElement)("div");switch((0,w.addClass)(b,"art-setting-item-left-icon"),c){case"button":case"switch":case"range":(0,w.append)(b,e.icon||f.config);break;case"selector":(null==(t=e.selector)?void 0:t.length)?(0,w.append)(b,e.icon||f.config):(0,w.append)(b,f.check)}(0,w.append)(v,b),(0,w.def)(e,"$icon",{configurable:!0,get:function(){return b}}),(0,w.def)(e,"icon",{configurable:!0,get:function(){return b.innerHTML},set:function(e){b.innerHTML="",(0,w.append)(b,e)}});var y=(0,w.createElement)("div");(0,w.addClass)(y,"art-setting-item-left-text"),(0,w.append)(y,e.html||""),(0,w.append)(v,y),(0,w.def)(e,"$html",{configurable:!0,get:function(){return y}}),(0,w.def)(e,"html",{configurable:!0,get:function(){return y.innerHTML},set:function(e){y.innerHTML="",(0,w.append)(y,e)}});var j=(0,w.createElement)("div");switch((0,w.addClass)(j,"art-setting-item-right-tooltip"),(0,w.append)(j,e.tooltip||""),(0,w.append)(g,j),(0,w.def)(e,"$tooltip",{configurable:!0,get:function(){return j}}),(0,w.def)(e,"tooltip",{configurable:!0,get:function(){return j.innerHTML},set:function(e){j.innerHTML="",(0,w.append)(j,e)}}),c){case"switch":var _=(0,w.createElement)("div");(0,w.addClass)(_,"art-setting-item-right-icon");var x=(0,w.append)(_,f.switchOn),k=(0,w.append)(_,f.switchOff);(0,w.setStyle)(e.switch?k:x,"display","none"),(0,w.append)(g,_),(0,w.def)(e,"$switch",{configurable:!0,get:function(){return _}});var S=e.switch;(0,w.def)(e,"switch",{configurable:!0,get:function(){return S},set:function(e){S=e,e?((0,w.setStyle)(k,"display","none"),(0,w.setStyle)(x,"display",null)):((0,w.setStyle)(k,"display",null),(0,w.setStyle)(x,"display","none"))}});break;case"range":var T=(0,w.createElement)("div");(0,w.addClass)(T,"art-setting-item-right-icon");var E=(0,w.append)(T,'');E.value=e.range[0],E.min=e.range[1],E.max=e.range[2],E.step=e.range[3],(0,w.addClass)(E,"art-setting-range"),(0,w.append)(g,T),(0,w.def)(e,"$range",{configurable:!0,get:function(){return E}});var I=(0,u._)(e.range);(0,w.def)(e,"range",{configurable:!0,get:function(){return I},set:function(e){I=(0,u._)(e),E.value=e[0],E.min=e[1],E.max=e[2],E.step=e[3]}});break;case"selector":if(null==(r=e.selector)?void 0:r.length){var P=(0,w.createElement)("div");(0,w.addClass)(P,"art-setting-item-right-icon"),(0,w.append)(P,f.arrowRight),(0,w.append)(g,P)}}switch(c){case"switch":if(e.onSwitch){var M,C=this,F=d(m,"click",(M=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onSwitch.call(C.art,e,m,t)];case 1:return e.switch=r.sent(),[2]}})}),function(e){return M.apply(this,arguments)}));e.$events.push(F)}break;case"range":if(e.$range){if(e.onRange){var O,A=this,D=d(e.$range,"change",(O=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onRange.call(A.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return O.apply(this,arguments)}));e.$events.push(D)}if(e.onChange){var L,R=this,$=d(e.$range,"input",(L=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return e.range[0]=e.$range.valueAsNumber,[4,e.onChange.call(R.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return L.apply(this,arguments)}));e.$events.push($)}}break;case"selector":var z,V=this,q=d(m,"click",(z=(0,a._)(function(t){var r,n;return(0,p._)(this,function(o){switch(o.label){case 0:if(!(null==(r=e.selector)?void 0:r.length))return[3,1];return V.render(e.selector),[3,3];case 1:if(V.check(e),!e.$parent.onSelect)return[3,3];return n=e.$parent,[4,e.$parent.onSelect.call(V.art,e,m,t)];case 2:n.tooltip=o.sent(),o.label=3;case 3:return[2]}})}),function(e){return z.apply(this,arguments)}));e.$events.push(q),e.default&&(0,w.addClass)(m,"art-current");break;case"button":if(e.onClick){var H,N=this,Z=d(m,"click",(H=(0,a._)(function(t){return(0,p._)(this,function(r){switch(r.label){case 0:return[4,e.onClick.call(N.art,e,m,t)];case 1:return e.tooltip=r.sent(),[2]}})}),function(e){return H.apply(this,arguments)}));e.$events.push(Z)}}(0,w.def)(e,"$item",{configurable:!0,get:function(){return m}}),o?(0,w.replaceElement)(m,i):(0,w.append)(s,m),e.mounted&&setTimeout(function(){return e.mounted.call(n.art,e.$item,e)},0)}}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.option;if(this.active=e,this.cache.has(e)){var t=this.cache.get(e);(0,w.inverseClass)(t,"art-current")}else{var r,n=(0,w.createElement)("div");this.cache.set(e,n),(0,w.addClass)(n,"art-setting-panel"),(0,w.append)(this.$parent,n),(0,w.inverseClass)(n,"art-current"),(null==(r=e[0])?void 0:r.$parent)&&this.createHeader(e[0]);for(var o=0;oa&&lu)&&setTimeout(function(){(0,i.setStyle)(o,"width","".concat(u,"px")),(0,i.setStyle)(o,"height","".concat(l,"px")),(0,i.setStyle)(o,"transform-origin","0 0"),(0,i.setStyle)(o,"transform","rotate(90deg) translate(0, -".concat(l,"px)")),(0,i.addClass)(o,"art-auto-orientation"),e.isRotate=!0,e.emit("resize")},r.AUTO_ORIENTATION_TIME)}else(0,i.hasClass)(o,"art-auto-orientation")&&((0,i.removeClass)(o,"art-auto-orientation"),e.isRotate=!1,e.emit("resize"))}),e.on("fullscreen",(t=(0,a._)(function(e){var t,r,n,a,l,u,p,f,d;return(0,s._)(this,function(s){switch(s.label){case 0:if(!(null==(r=screen)||null==(t=r.orientation)?void 0:t.lock))return[2];if(n=screen.orientation.type,!e)return[3,3];if(a=c.videoWidth,l=c.videoHeight,p=(u=document.documentElement).clientWidth,f=u.clientHeight,!(a>l&&pf))return[3,2];return d=n.startsWith("portrait")?"landscape":"portrait",[4,screen.orientation.lock(d)];case 1:s.sent(),(0,i.addClass)(o,"art-auto-orientation-fullscreen"),s.label=2;case 2:return[3,5];case 3:if(!(0,i.hasClass)(o,"art-auto-orientation-fullscreen"))return[3,5];return[4,screen.orientation.lock(n)];case 4:s.sent(),(0,i.removeClass)(o,"art-auto-orientation-fullscreen"),s.label=5;case 5:return[2]}})}),function(e){return t.apply(this,arguments)})),{name:"autoOrientation",get state(){return(0,i.hasClass)(o,"art-auto-orientation")}}}},{"@swc/helpers/cjs/_async_to_generator.cjs":"4ElRo","@swc/helpers/cjs/_ts_generator.cjs":"a4h1C","../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],a1MWA:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.i18n,r=e.icons,n=e.storage,o=e.constructor,s=e.proxy,i=e.template.$poster,c=e.layers.add({name:"auto-playback",html:'\n
\n
\n
\n '}),l=(0,a.query)(".art-auto-playback-last",c),u=(0,a.query)(".art-auto-playback-jump",c),p=(0,a.query)(".art-auto-playback-close",c);(0,a.append)(p,r.close);var f=null;function d(){var r=(n.get("times")||{})[e.option.id||e.option.url];clearTimeout(f),(0,a.setStyle)(c,"display","none"),r&&r>=o.AUTO_PLAYBACK_MIN&&((0,a.setStyle)(c,"display","flex"),l.innerText="".concat(t.get("Last Seen")," ").concat((0,a.secondToTime)(r)),u.innerText=t.get("Jump Play"),s(p,"click",function(){(0,a.setStyle)(c,"display","none")}),s(u,"click",function(){e.seek=r,e.play(),(0,a.setStyle)(i,"display","none"),(0,a.setStyle)(c,"display","none")}),e.once("video:timeupdate",function(){f=setTimeout(function(){(0,a.setStyle)(c,"display","none")},o.AUTO_PLAYBACK_TIMEOUT)}))}return e.on("video:timeupdate",function(){if(e.playing){var t=n.get("times")||{},r=Object.keys(t);r.length>o.AUTO_PLAYBACK_MAX&&delete t[r[0]],t[e.option.id||e.option.url]=e.currentTime,n.set("times",t)}}),e.on("ready",d),e.on("restart",d),{name:"auto-playback",get times(){return n.get("times")||{}},clear:function(){return n.del("times")},delete:function(e){var t=n.get("times")||{};return delete t[e],n.set("times",t),t}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],c7yFC:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.constructor,r=e.proxy,n=e.template,o=n.$player,s=n.$video,i=null,c=!1,l=1,u=function(){clearTimeout(i),c&&(c=!1,e.playbackRate=l,(0,a.removeClass)(o,"art-fast-forward"))};return r(s,"touchstart",function(r){1===r.touches.length&&e.playing&&!e.isLock&&(i=setTimeout(function(){c=!0,l=e.playbackRate,e.playbackRate=t.FAST_FORWARD_VALUE,(0,a.addClass)(o,"art-fast-forward")},t.FAST_FORWARD_TIME))}),r(document,"touchmove",u),r(document,"touchend",u),{name:"fastForward",get state(){return(0,a.hasClass)(o,"art-fast-forward")}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}],lewgR:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var a=e("../utils");function s(e){var t=e.layers,r=e.icons,n=e.template.$player;function o(){return(0,a.hasClass)(n,"art-lock")}function s(){(0,a.addClass)(n,"art-lock"),e.isLock=!0,e.emit("lock",!0)}function i(){(0,a.removeClass)(n,"art-lock"),e.isLock=!1,e.emit("lock",!1)}return t.add({name:"lock",mounted:function(t){var n=(0,a.append)(t,r.lock),o=(0,a.append)(t,r.unlock);(0,a.setStyle)(n,"display","none"),e.on("lock",function(e){e?((0,a.setStyle)(n,"display","inline-flex"),(0,a.setStyle)(o,"display","none")):((0,a.setStyle)(n,"display","none"),(0,a.setStyle)(o,"display","inline-flex"))})},click:function(){o()?i():s()}}),{name:"lock",get state(){return o()},set state(value){value?s():i()}}}},{"../utils":"b2ThP","@parcel/transformer-js/src/esmodule-helpers.js":"ihnSZ"}]},["bzF6W"],"bzF6W","parcelRequireb749",{}); \ No newline at end of file diff --git a/packages/artplayer/package.json b/packages/artplayer/package.json index 8b1a5eda5..7f9f9b4de 100644 --- a/packages/artplayer/package.json +++ b/packages/artplayer/package.json @@ -1,16 +1,10 @@ { "license": "MIT", "name": "artplayer", - "version": "5.2.4", + "version": "5.2.5", "main": "dist/artplayer.js", "legacy": "dist/artplayer.legacy.js", - "module": "dist/artplayer.esm.js", "types": "types/artplayer.d.ts", - "exports": { - "import": "./dist/artplayer.esm.js", - "require": "./dist/artplayer.js", - "default": "./dist/artplayer.js" - }, "homepage": "https://artplayer.org", "author": "Harvey Zack ", "browserslist": "last 1 Chrome version",